【问题标题】:Get Reviewer info from Facebook Graph API Rating call从 Facebook Graph API Rating 调用中获取 Reviewer 信息
【发布时间】:2018-10-25 12:03:32
【问题描述】:

我在使用 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);
  }
);

因此,当我在 Graph API Explorer(由 Facebook 开发人员界面提供)中执行该查询时,它可以完美运行。我的评分如下:

Graph API Explorer

当我在浏览器中尝试时,我也会得到我的评分,但只有一些默认字段(即 created_time、review_text、rating)。

审阅者字段是默认字段。所以,我确实尝试在没有任何字段参数的情况下进行查询,并且它的行为相同。

最初,我认为它与权限有关,但在文档中它说只需要“manage_pages”。

我该如何解决这个问题?

【问题讨论】:

    标签: facebook facebook-graph-api facebook-javascript-sdk


    【解决方案1】:

    这里有同样的问题,但使用 PHP SDK。我向 Facebook 开发者支持中心询问,他们很快就回复了。根据文档,原因与最近的变化以及他们向我提出的建议有关:

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

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

    【讨论】:

    • 好的,这对我来说完全有意义,因为我的应用程序仍处于开发模式。我暂时不需要提交评论,但如果我这样做,我肯定会更新答案!非常感谢。
    • 很高兴为您提供帮助。相反,就我而言,我需要来自 Facebook 页面的所有评级和相关评论者,并且随着这些平台的变化,除非我发布应用程序,否则我将无法再获得评论者。
    • 我使用 facebook graph api 对页面进行评分。但它不会像 facebook 页面那样返回所有评论。就像我的 facebook 页面上的评论是 94 并且在 api 中它返回 73。是否有任何用于 graph api 的过滤器?
    • 您可能需要分页或作为一种快速解决方法,我认为您可以使用属性来增加收到的项目数量(例如您的请求中的 LIMIT=1000)。尝试浏览一下图形 API 开发者工具,看看那里收到的评论是否也较少。
    • 这也是我的问题,只是我使用的是open_graph_story{id,data,from,comments.limit(100){id,created_time,from,message}}。我的应用似乎无缘无故地停止为 from 字段获取任何内容。事实证明,我在某个时候将我的应用程序切换回了开发模式,并且当我将我的应用程序从开发模式切换到 live 时,它​​就可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多