通过Graph API读取Likes的权限

时间:2016-08-24 00:05:13

标签: facebook facebook-graph-api facebook-like

由于REST API已经消失,我需要找到另一种方法来阅读我们的webapp页面的喜欢。

根据Graph API文档,以下内容应返回任何对象(例如页面)的喜欢:

https://graph.facebook.com/v2.6/{PAGE-ID}/likes?summary=true

哎呀,An access token is required to request this resource。事实证明,您还可以使用应用程序ID和密码构建一个临时令牌,而不是真正的令牌:

https://graph.facebook.com/v2.6/{PAGE-ID}/likes?summary=true&access_token={ID}|{SECRET}

上面会返回一个JSON有效负载,但是,即使我尝试使用一个有近200个喜欢的页面,它也是空的:

{
   "data": [     
   ],
   "summary": {
      "total_count": 0,
      "can_like": false,
      "has_liked": false
   }
}

也许是权限问题?应用程序域和页面URL域相同。

非常感谢任何解决这个谜语的提示!

2 个答案:

答案 0 :(得分:0)

它也适用于简单的App Access Token,但我认为你对该端点有错误的想法。没有办法获得“Page Fans”,你只能得到“当前页面喜欢的其他页面”。只需使用App Access Token尝试此操作:

<script>
  $(document).ready(function() {
    $('#dataTables-example').DataTable({
      responsive : true,
      "order":[],               
      "columnDefs": [ {
        "targets": 0,
        "orderable": false,
        "className": "dt-center"
      }]                              
    });

    $("#selectall").click(function() {
      $('.case').prop('checked', this.checked);               
        if ($('.case').prop('checked', this.checked)) {
          count = this.checked ? $(".case").length : 0;
          smsCount.innerHTML = count;
        }
      });           

      $(".case").click(function() {
        count = $(".case:checked").length;

        if ($(".case").length == $(".case:checked").length) {
          $("#selectall").prop("checked", true);
        } else {
          $("#selectall").prop("checked", false);
        }

        smsCount.innerHTML = count;
      });
    });
  });
</script>

它应该返回以下JSON:

https://graph.facebook.com/bladauhu/likes?access_token=APPID|APPSECRET

有关令牌的更多信息:

答案 1 :(得分:0)

https://developers.facebook.com/docs/apps/changelog#v2_6_changes

  

页面节点上的likes字段已重命名为fan_count

正如luschn在回答中所说,likes是该页面所喜欢的其他页面;如果您想获得喜欢该页面的人数,您需要请求fan_count