2011-04-28 58 views

回答

2

您必須使用來自Facebook的實時API:http://developers.facebook.com/docs/api/realtime/

要做到你的要求,你必須訂閱page對象及其feed連接。

要添加你要發送POST請求到訂閱:

https://graph.facebook.com/<app-id>/subscriptions?access_token=... 

爲此,你需要一個訪問令牌,你可以得到在:

https://graph.facebook.com/oauth/access_token?client_id=<app-id>&client_secret=<app-secret>&grant_type=client_credentials 

有到田間地頭在POST數據中有:

  • object - 要監視的對象的類型,例如「用戶」或「權限」。您將監視該類型的所有對象;例如,您的應用程序的所有用戶。
  • fields - 用逗號分隔的列表。這是指定對象上的屬性或連接的列表。例如,要監控用戶姓名,圖片,朋友和新聞Feed的更改,您需要指定「名稱,圖片,朋友,Feed」
  • callback_url - Facebook將發佈訂閱更新的回調URL。

而且你可以指定

  • verify_token - 訂戶提供的不透明令牌將被回顯在驗證請求,以幫助用戶識別訂閱請求正在驗證它。如果不包括此項,驗證請求中不會包含任何令牌。這是來自PubSubHubbub規範。

一旦回調網址已經被驗證,您將收到更新時,頁面上的回調網址爲JSON對象在飼料中數據的變化,這裏是一個用戶的例子:

{ 
"object": "user", 
"entry": 
[ 
    { 
     "uid": 1335845740, 
     "changed_fields": 
     [ 
      "name", 
      "picture" 
     ], 
     "time": 232323 
    }, 
    { 
     "uid": 1234, 
     "changed_fields": 
     [ 
      "friends" 
     ], 
     "time": 232325 
    } 
] 
} 

您也可以在相同的URL上執行GET和DELETE以獲取訂閱列表,並刪除訂閱。

但是,所有的細節都在 facebook doc

+3

一個小的差別不過是不像Twitter的流API,Facebook的實時更新並沒有給實際的變化作爲飼料。它只是表示對該對象有更新。然後必須明確地拉出物體並找出變化。 – Balakrishnan 2011-04-29 00:18:39

+0

Ruby中是否有示例代碼?我搜索了一下,但似乎沒有那麼多使用實時圖形API ...這有點奇怪。 – Mesut 2011-04-29 07:43:34

+0

從理論上講,現在可以在頁面上獲得牆更新,但是我無法使其工作。 – Leopd 2011-09-09 21:46:58