我正在开发一个应用程序,允许用户将内容发布到他们的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"
]
}
使用页面访问令牌获取整个页面数据时我缺少的是什么?
答案 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的管理员。如果您是管理员,则只能获得页面令牌。