0

我正在开发一个应用程序,我想要它做的是:

  1. 在用户的墙上贴一个 poto
  2. 实时获取此帖子将收到的点赞数

我遇到的第一个问题是根据 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?

我将这两个问题合二为一,因为也许第二个问题的答案也是第一个。我需要知道的最后一件事:即使它是可行的,做这样的事情在某种程度上违反了 Facebook 政策?

4

1 回答 1

2

这是因为您查询的是Post Id,而不是Photo Id

当您上传照片时,帖子也会自动发布在用户的提要上。要读取照片 ID,您必须使用该response.id属性。

在您的示例中,照片的 id 是4107146412059,您可以从 form 中的 post id 派生它<user-id>_<photo-id>,但不要指望它,因为将来可能会改变。

Graph API 文档中关于 Photo 对象的文档

实时更新:

当用户提要更新时,您可以从 Facebook 获得实时推送通知: 在此处输入图像描述

但这太过分了,因为您会将所有帖子都添加到用户提要中,而不仅仅是您的照片。可悲的是,我认为唯一的方法是轮询更新。

有关实时更新的其他信息:Facebook 文档

于 2013-05-04T17:06:14.683 回答