2012-06-07 51 views
5

請問是否可以在我的gmail狀態下發布倒計時? 像「01:44:15:23」一樣不斷減少。如何通過gmail狀態發佈倒計時?

+2

我想知道是否可以通過API更改Gmail狀態消息?還有一件事我想知道的是,可以通過AN API讀取Gmail狀態消息嗎? –

+0

此鏈接與您的概念相關,因此請仔細閱讀:http://stackoverflow.com/questions/7035687/get-user-login-status-on-facebook-by-real-time – sanghavi7

回答

4

找到了一個好article to share

谷歌Talk使用XMPP然後如果你可以連接使用XMPP clientGoogle account你可以使用客戶端,而不是谷歌的談話。

整個機制過於簡單(使用的拍擊XMPP Library因爲它簡單,供應我很好):

  1. 登錄。
  2. 計算現在和目標日期之間的差異。
  3. 立即和目標日期之間存在

登錄

import org.jivesoftware.smack.XMPPConnection; 

public void connect() { 
    XMPPConnection connection = new XMPPConnection(server); //Server is gmail.com for Google Talk. 
    connection.connect(); 
    connection.login(username, password); //Username and password. 
} 

計算差異

這個過程是使用Java日曆和Date對象完成:

import java.util.Calendar; 
import java.util.Date; 

{ 
     Calendar calendar1 = Calendar.getInstance(); 
     Date d = new Date(); 
     calendar1.setTime(d); 

     Calendar calendar2 = Calendar.getInstance(); 
     calendar2.setTime(endLine); //End line is the date we're counting to. 

     long milliseconds1 = calendar1.getTimeInMillis(); 
     long milliseconds2 = calendar2.getTimeInMillis(); 
     long diff = milliseconds2 - milliseconds1; 

     long diffDays = diff/(24 * 60 * 60 * 1000); 
     diff = diff % (24 * 60 * 60 * 1000); 

     long diffHours = diff/(60 * 60 * 1000); 
     diff = diff % (60 * 60 * 1000); 

     long diffMinutes = diff/(60 * 1000); 
     diff = diff % (60 * 1000); 
} 

此代碼以天,小時和分鐘計算兩個日期之間的差異。

發送存在

計算差值所有我們要做後是送的存在:

import org.jivesoftware.smack.packet.Presence; 

{ 
     String remaining = Long.toString(diffDays) + " day(s), " + Long.toString(diffHours) + " hour(s), " + Long.toString(diffMinutes) + " minute(s) " + message; //Message is usually: Until "something". 

     Presence presence = new Presence(Presence.Type.available); 
     presence.setStatus(remaining); 
     presence.setPriority(24); //Highest priority in Google Talk 
     presence.setMode(presenceMode); //This is one of XMPP modes (Available, Chat, DND, Away, XA). 
     connection.sendPacket(presence); 
} 

這一點後人們會看到你的新的狀態,而不是一個在谷歌的談論。 (請注意,您將無法看到Google Talk內的變化,但請放心,它會發生變化。如果您想確保變更,請向您的某位朋友通知您的狀態)。

+0

PHP可以使用爲了這? –

+0

你可以找到幫助:http://code.google.com/p/xmpphp/ http://stackoverflow.com/questions/2495154/best-xmpp-client-php-javascript和http://metajack.wordpress .COM/2008/07/02/XMPP的是,更好,與波什/ –

2

它非常簡單隻需下載從herestatus-counter.jar,寫一個腳本文件

java -jar /root/status-counter.jar -status SF -username [email protected] -password XXXXXX -datetime 2013-03-21T16:00:00+02:00 -type hours -decimals 0 

,寫一個cron來完成這項工作

*/5 * * * * /path/script.sh > /dev/null 

此更新,每5分鐘你的狀態。更多細節可以在here找到。