【发布时间】:2013-07-25 21:22:27
【问题描述】:
我想知道当用户上传新照片时,我需要订阅哪些对象和连接才能接收通知(Facebook 实时更新功能),无论是在他的相册中、作为状态更新还是在群组中。
这与用户个人资料图片无关,而是用户在 Facebook 上分享的任何照片。
【问题讨论】:
标签: facebook facebook-graph-api real-time photo subscriptions
我想知道当用户上传新照片时,我需要订阅哪些对象和连接才能接收通知(Facebook 实时更新功能),无论是在他的相册中、作为状态更新还是在群组中。
这与用户个人资料图片无关,而是用户在 Facebook 上分享的任何照片。
【问题讨论】:
标签: facebook facebook-graph-api real-time photo subscriptions
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_id 列表,并将其与 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
中的 URL您可以通过以下方式通过 FQL 获取所有照片帖子,但这与实时更新无关:
select post_id, attachment, created_time from stream where source_id = me() and type = 247 limit 100
【讨论】: