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

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

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

1个回答

1
Facebook在实时更新描述中说道(https://developers.facebook.com/docs/reference/api/realtime/ - "更新类型"下):
请注意,您无法订阅用户对象的所有属性和连接的更改。您可以订阅的连接包括:feed、friends、activities、interests、music、books、movies、television、likes、checkins、location和events。
我能想到的唯一方法就是订阅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需要来自用户授权应用程序后存储它的地方。然后,您可以解析所有数组条目的JSON结果,其中包含"type":"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中找到的URL。
您可以通过以下方式使用FQL获取所有照片帖子,但这与实时更新无关:
select post_id, attachment, created_time from stream where source_id = me() and type = 247 limit 100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接