使用测试用户

时间:2016-02-18 13:25:55

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

我正在开发一个应用程序,允许用户将内容发布到他们的fb页面。

1)我使用开发者帐户在facebook上创建了一个应用程序。
2)我创建了具有manage_pages和publish_page操作权限的测试用户   3)我尝试使用PHP sdk访问页面访问令牌,但我无法访问它。
4)页面是公开的,我试图获取数据。最后我也想发布,但我只获取page_id和页面名称。

   Route :: get('fbpage',function(){

   $fb = new Facebook\Facebook([
  'app_id' => env('FACEBOOK_APP_ID'),
  'app_secret' => env('FACEBOOK_APP_SECRET'),
  'default_graph_version' => 'v2.5',
  'access_token' => $_SESSION['fb_access_token']
  ]);


  $response = $fb->get('/{page-id}',$_SESSION['fb_access_token']);

//获取类型为GraphPage的响应

 $page = $response->getGraphPage();
 $accessToken = $page->getAccessToken($_SESSION['fb_access_token']);
 echo $accessToken;
 dd($page);

响应

GraphPage {#369 ▼
#items: array:2 [▼
"name" => "page-name"
"id" => "54576557031120"
 ]
} 

使用页面访问令牌获取整个页面数据时我缺少的是什么?

1 个答案:

答案 0 :(得分:1)

它被称为“声明字段”,您需要指定要获取的字段,否则您只能获得ID和名称:

$fb->get('/{page-id}?fields=name,access_token',$_SESSION['fb_access_token']);

它是在图谱API的v2.4中引入的:https://developers.facebook.com/docs/apps/changelog#v2_4

旁注:当然你必须是Page的管理员。如果您是管理员,则只能获得页面令牌。