我在使用Facebook Graph API时遇到了一个奇怪的问题。
我的目标是获取特定页面的评分,以便在网站上展示它们。
我正在使用JavaScript SDK,并按照文档中关于页面访问令牌的说明进行操作。
这是我的Facebook登录按钮,以便获得当前用户帐户(在这种情况下是我的帐户)的授权,以正确获得页面的管理员角色:
然后,我将使用/me/accounts API调用来获取所有用户的页面:
当客户选择页面名称时,它将获得正确的页面访问令牌,以便在之后进行特定于页面的API调用。
然后是页面评级调用的最后一步:
所以,当我在Facebook开发人员接口提供的Graph API Explorer中执行该查询时,它能够完美地工作。我得到了我的评分,如下所示:Graph API Explorer。
当我在浏览器中尝试时,我也能够得到我的评分,但只有部分默认字段(例如created_time、review_text、rating)。
reviewer字段是一个默认字段。所以,我尝试了不带任何字段参数的查询,结果相同。
最初,我认为这是关于权限的问题,但文档中说只需要'manage_pages'权限。
我该如何解决这个问题?
我的目标是获取特定页面的评分,以便在网站上展示它们。
我正在使用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'权限。
我该如何解决这个问题?
open_graph_story{id,data,from,comments.limit(100){id,created_time,from,message}}
。看起来毫无原因,我的应用程序停止获取“from”字段的任何内容。事实证明,我在某个时候将我的应用程序切换回开发模式,只要我将应用程序从开发模式切换到生产模式,它就可以正常工作了。 - Joseph Marikle