使用facebook实时更新检测照片上传

时间:2013-07-25 19:38:07

标签: facebook facebook-graph-api real-time photo subscriptions

我想知道当用户上传新照片时,我需要订阅哪些对象和连接才能接收通知(Facebook实时更新功能),无论是在他的相册中,还是作为状态更新,还是在组中。

这不是用户个人资料图片,而是用户在Facebook上分享的任何照片。

1 个答案:

答案 0 :(得分:1)

Facebook在实时更新说明(https://developers.facebook.com/docs/reference/api/realtime/ - 下面的“更新类型”)中说明以下内容:

请注意,您无法订阅User对象的所有属性和连接上的更改。您可以订阅的连接包括:Feed,朋友,活动,兴趣,音乐,书籍,电影,电视,喜欢,签到,位置,活动。

我唯一能想到的是你订阅了 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”解析所有数组条目的结果JSON:“photo”,您将收到引用照片的帖子。

然后,您可以创建以逗号分隔的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