我正在开发一个应用程序,我想要它做的是:
我遇到的第一个问题是根据post-id获取喜欢计数,这是我的照片上传代码:
FB.api('/photos', 'post', {
message: $user_submited_string,
url:'http://example/url/image.jpg'
}, function(response){
if (!response || response.error) {
//error handler
} else {
var posted_content_id = response.postid;
console.log(posted_content_id);
})
但是当我将这个posted_content_id
变量放入Open Graph Debugger时,我不会得到喜欢的数量:
{
"id": "1685033176_4107146412059",
"from": {
"name": "João Paulo Apolinário Passos",
"id": "1685033176"
},
"picture": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-prn1/548929_4107355417284_1018318871_s.jpg",
"link": "https://www.facebook.com/photo.php?fbid=4107355417284&set=a.4107146292056.1073741826.1685033176&type=1&relevant_count=7",
"name": "My Test App Photos",
"icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/StEh3RhPvjk.gif",
"actions": [
{
"name": "Comment",
"link": "https://www.facebook.com/1685033176/posts/4107146412059"
},
{
"name": "Like",
"link": "https://www.facebook.com/1685033176/posts/4107146412059"
}
],
"privacy": {
"description": "Public",
"value": "EVERYONE",
"friends": "",
"networks": "",
"allow": "",
"deny": ""
},
"type": "photo",
"status_type": "added_photos",
"object_id": "4107355417284",
"application": {
"name": "My Test App",
"id": "178883808932511"
},
"created_time": "2013-04-10T01:20:12+0000",
"updated_time": "2013-04-10T01:20:12+0000"
}
其中不包含我的照片的计数。所以第一个问题是:如何获取用户插入的图像的计数?
第二件事是,在获得喜欢的数量后,我想对它们进行排名。为此,我考虑将它们存储到数据库中并设置一个cron作业以检查新帖子并使用新帖子更新排名。当我在寻找如何做到这一点时,我遇到了Facebook开发人员文档的“实时更新”部分。但对我来说,目前尚不清楚我是否可以实时计算这个数字以及如何计算。那是我的第二个问题:我可以使用原生“实时更新”实时获取图像的喜欢数量吗?如果那不可能,如何创建自己的计数器?扩展令牌和cronjobs?
我在一个问这两个问题,因为也许第二个问题是anwser也是第一个问题。最后我需要知道的是:即使它是可行的,做某些事情也会违反Facebook政策?
答案 0 :(得分:2)
这是因为您要查询帖子ID ,而不是照片ID 。
上传照片时,帖子也会自动发布在用户的Feed上。
要阅读照片ID,您必须使用response.id
属性。
在您的示例中,照片的ID为4107146412059
,您可以从<user-id>_<photo-id>
形式的帖子ID中获取它,但不要指望它,因为它可以在未来。
实时更新:
当用户Feed更新时,您可以从Facebook获得实时推送通知:
但这样做会有点过分,因为您会将所有帖子都收到用户Feed,而不仅仅是您的照片。可悲的是,我认为唯一的方法是轮询更新。
有关实时更新的其他信息:Facebook documentation