从Facebook Graph API评分调用中获取评论人信息

3
我在使用Facebook Graph API时遇到了一个奇怪的问题。
我的目标是获取特定页面的评分,以便在网站上展示它们。
我正在使用JavaScript SDK,并按照文档中关于页面访问令牌的说明进行操作。
这是我的Facebook登录按钮,以便获得当前用户帐户(在这种情况下是我的帐户)的授权,以正确获得页面的管理员角色:
<fb:login-button id="fb-login-btn" scope="manage_pages,pages_show_list" onlogin="checkLoginState();">

然后,我将使用/me/accounts API调用来获取所有用户的页面:
FB.api('/me/accounts', function(response) {

  if(response && !response.errors) {
    const selectList = document.getElementById('fb-page-list');

    // Populate the list
    response.data.forEach(page => {
      var option = document.createElement("option");
      option.value = JSON.stringify({id: page.id, access_token: page.access_token});
      option.text = page.name;
      selectList.appendChild(option);
    });
  }
});

当客户选择页面名称时,它将获得正确的页面访问令牌,以便在之后进行特定于页面的API调用。
然后是页面评级调用的最后一步:
FB.api(
  '/'+ page.id + '/ratings?access_token='+ page.access_token +'&limit=10?fields=reviewer{id,name,picture},rating}',
  function(response) {
    console.log(response);
  }
);

所以,当我在Facebook开发人员接口提供的Graph API Explorer中执行该查询时,它能够完美地工作。我得到了我的评分,如下所示:Graph API Explorer
当我在浏览器中尝试时,我也能够得到我的评分,但只有部分默认字段(例如created_time、review_text、rating)。
reviewer字段是一个默认字段。所以,我尝试了不带任何字段参数的查询,结果相同。
最初,我认为这是关于权限的问题,但文档中说只需要'manage_pages'权限。
我该如何解决这个问题?
1个回答

4

我也遇到了同样的问题,但是是在使用PHP SDK时出现的。我联系了Facebook开发人员支持中心,他们很快回复了我。原因与最近的变化有关,据文档所述,他们给了我以下建议:

"对于开发模式下的应用程序,'应用程序用户只能访问具有应用程序角色的用户数据。'https://developers.facebook.com/docs/apps/security 请提交您的应用程序进行应用审核并发布您的应用程序以访问用户信息。

我还没有尝试过,希望这可以解决我们的问题。


好的,对于我来说这很有意义,因为我的应用程序仍处于开发模式。 我现在不需要提交审核,但如果我需要的话,我肯定会更新答案!非常感谢。 - Noé VIRICEL
很高兴能帮助你。但在我的情况下,我需要从Facebook页面获取所有评分和相关评论者,在这些平台变化后,除非我发布应用程序,否则我无法再获取评论者了。 - Andrea Sedini
我使用了Facebook Graph API来获取页面的评分。但是它没有返回与Facebook页面上所有评论相同的结果。例如,在我的Facebook页面上,评论数量为94,而在API中只返回了73个。是否有Graph API的筛选器? - Amit Kumar
你可能需要分页,或者可以使用一个属性作为快速解决方案来增加接收到的项目数量(类似于在请求中设置LIMIT=1000)。尝试快速浏览一下图形API开发工具,并检查那里是否也收到了较少的评论。 - Andrea Sedini
这对我也是个问题,只不过我正在使用 open_graph_story{id,data,from,comments.limit(100){id,created_time,from,message}}。看起来毫无原因,我的应用程序停止获取“from”字段的任何内容。事实证明,我在某个时候将我的应用程序切换回开发模式,只要我将应用程序从开发模式切换到生产模式,它就可以正常工作了。 - Joseph Marikle

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