2013-07-25 26 views
3

我想知道當用戶上傳新照片時(無論是在他的相冊中)作爲狀態,我需要訂閱哪些對象和連接以接收通知(Facebook實時更新功能)更新或成組。使用Facebook實時更新檢測照片上傳

這不是關於用戶個人資料圖片,而是用戶在Facebook上分享的任何照片。

回答

1

Facebook表示,下面的實時更新說明(https://developers.facebook.com/docs/reference/api/realtime/ - 下面的「更新類型」):

請注意,您不能訂閱的所有屬性和用戶對象的連接的變化。您可以訂閱的連接包括:Feed,朋友,活動,興趣,音樂,書籍,電影,電視,喜歡,簽到,地點,活動等。

我能想到的唯一的事情是,你訂閱飼料連接,並做一些後續處理,找出後是否與照片:

GET https://graph.facebook.com/{USER_ID}/feed?fields=id,link,type,link&since={YOUR_TIMESTAMP}&access_token={ACCESS_TOKEN} 

你可以從來自Facebook的實時更新的POST中派生USER_ID,YOUR_TIMESTAMP可以是POST收到的系統時間減去30秒,並且ACCESS_TOKEN需要來自您存儲它的位置,一旦用戶將權限授予您的應用程序。

然後,您可以使用「type」:「photo」解析生成的所有JSON數組條目,您將收到引用照片的帖子。

然後,您可以創建一個逗號分隔的post_ids的列表,並結合使用與FQL查詢,以獲取有關的附本人照片的詳細信息:

GET https://graph.facebook.com/fql?q=select+post_id,+attachment,+created_time+from+stream+where+source_id+=+{USER_ID}+and+type+=+247+and+post_id+in+({POST_ID_LIST})&access_token={ACCESS_TOKEN} 

內產生的JSON,你可以找到AID和照片的PID,您可以使用它獲取有關照片的更多信息。或者你使用的網址,你會發現在images.src

你可以通過以下方式通過FQL的所有照片的帖子,但隨後沒有涉及到實時更新:

select post_id, attachment, created_time from stream where source_id = me() and type = 247 limit 100