php - 无法通过 PHP SDK V4 获取 Facebook 评论。错误: (#210) Subject must be a page

标签 php facebook facebook-graph-api facebook-php-sdk

我正在尝试使用 PHP SDK V4 在我的网站页面中检索“Facebook 页面评级”。为此,我创建了一个 Facebook 应用程序,并从 Graph API Explorer 获取了页面访问 token

this link 中所述。当我仅访问页面详细信息时,我的代码工作正常

$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}'
);

但是当我尝试检索该 Facebook 页面的评级时,如所述 here -

$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}/ratings'
);

我收到以下错误-

Fatal error: Uncaught exception 'Facebook\FacebookPermissionException' with message '(#210) Subject must be a page.'.......

这是为什么呢?请帮忙!

最佳答案

您收到此错误是因为您没有在 API 调用中使用页面访问 token

获取页面访问 token -

不要使用 Graph API Explorer 中的页面访问 token ,而是从 API 调用中获取一个。请记住,用户必须向应用授予 manage_pages 权限。您将在以下调用的响应中获得页面访问 token ( demo )-

$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}?fields=access_token'
);

PS,如果需要,您还可以获得您创作的页面的页面访问 token ,该 token 永不过期。请参阅this回答。

通过调用使用页面访问 token -

要获取评分,您必须将页面访问 token 与 API /{page-id}/ratings 结合使用,就像这样 -

$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}/ratings?access_token='.$page_access_token  //use the page access token obtained from above step here
);

注意:

来自v2.0此后,除了public_profileemailuser_friends之外的权限都需要提交审核,然后才能上线您的应用;否则你将无法使用它们。只有应用程序的测试人员/管理员/开发人员才能使用这些权限进行测试,直到权限经过审核。

因此,您只需在应用程序上线之前提交登录审核即可。 Here are the details for login review

关于php - 无法通过 PHP SDK V4 获取 Facebook 评论。错误: (#210) Subject must be a page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24445242/

相关文章:

ios - 尝试在转换过程中开始模态转换

javascript - 使用 angularjs routeprovider 进行护照 facebook 身份验证

php - 如何在 PHP 中集成 Assently api 进行电子签名交易

php - PHP 中的数组搜索问题

php - 持续检查MySQL表更新的最佳方法是什么?

ios - Facebook iOS 设置 "iPhone Store Id"和 "iPad Store Id"有什么区别

php - 设置基于 PHP 定时器的函数

php - Facebook:如何解析访问 token 字符串

facebook - 发出Facebook好友请求时可以获取?

Facebook 使用开放图谱协议(protocol) ID 作为地点 ID 进行签到