无法通过PHP SDK V4获得Facebook评论。错误:(#210)主题必须是页面

时间:2014-06-27 06:23:16

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

我正在尝试使用PHP SDK V4来检索Facebook页面评分'在我的网站页面上。为此,我创建了一个fb应用,并从Graph API Explorer中获得了页面访问令牌

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

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

但是,当我尝试按照here -

所述检索该Facebook页面的评级时
$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}/ratings'
);

我得到以下错误 -

  

致命错误:未捕获的异常' Facebook \ FacebookPermissionException'带消息'(#210)主题必须是页面。' .......

为什么?请帮助!

1 个答案:

答案 0 :(得分:2)

由于您未在API调用中使用页面访问令牌,因此您收到此错误。

获取网页访问权限 -

不是使用Graph API资源管理器中的页面访问令牌,而是从API调用中获取一个。请记住,用户必须使用manage_pages权限授权该应用。您将在以下呼叫的响应中获取页面访问令牌(demo) -

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

PS,如果需要,您还可以获取您撰写从不到期的网页的网页访问令牌。请参阅this answer。

通过电话使用网页访问令牌

要获得评分,您必须使用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