图返回错误需要扩展权限 business_management
Graph returned an error requires extended permission business_management
我的应用程序具有 ads_management、business_management 和标准级别的权限,因此当我尝试从我的 Facebook 帐户登录时,它会成功检索信息。但是当我的客户使用 fb 登录时,它显示错误
Graph returned an error: (#200) Requires extended permission: business_management
我正在跟进 API 调用 v2.8
$fb = new \Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => $graph_api_version,
]);
$response = $fb->get('/me/businesses', $accessToken);
可能是什么原因和可能的解决方案?
试试这个
$fb = new \Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => $graph_api_version,
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = [
'email',
'user_friends',
'manage_pages',
'business_management',
'ads_management'
];
$fb_url = $helper->getLoginUrl(
<callbackUrl>,
$permissions
);
重定向到此 url。在获得用户许可后,Facebook 将再次将用户重定向回回调 url。
一旦客户通过此 url 返回门户,您将获得具有扩展权限的访问令牌,您可以通过短期访问令牌交换长期访问令牌并查询所需的图形-api
回调脚本
$fb = new \Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => $graph_api_version,
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
// The OAuth 2.0 client handler helps us manage access tokens
$oAuth2Client = $fb->getOAuth2Client();
// Exchange short-lived access token with long-lived access token
if (!$accessToken->isLongLived()) {
// Exchanges a short-lived access token for a long-lived one
try {
$accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
} catch (Facebook\Exceptions\FacebookSDKException $e) {
echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n";
exit;
}
}
存储访问令牌并将用户重定向到您查询的位置
$response = $fb->get('/me/businesses', $accessToken);
我的应用程序具有 ads_management、business_management 和标准级别的权限,因此当我尝试从我的 Facebook 帐户登录时,它会成功检索信息。但是当我的客户使用 fb 登录时,它显示错误
Graph returned an error: (#200) Requires extended permission: business_management
我正在跟进 API 调用 v2.8
$fb = new \Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => $graph_api_version,
]);
$response = $fb->get('/me/businesses', $accessToken);
可能是什么原因和可能的解决方案?
试试这个
$fb = new \Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => $graph_api_version,
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = [
'email',
'user_friends',
'manage_pages',
'business_management',
'ads_management'
];
$fb_url = $helper->getLoginUrl(
<callbackUrl>,
$permissions
);
重定向到此 url。在获得用户许可后,Facebook 将再次将用户重定向回回调 url。 一旦客户通过此 url 返回门户,您将获得具有扩展权限的访问令牌,您可以通过短期访问令牌交换长期访问令牌并查询所需的图形-api
回调脚本
$fb = new \Facebook\Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => $graph_api_version,
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
// The OAuth 2.0 client handler helps us manage access tokens
$oAuth2Client = $fb->getOAuth2Client();
// Exchange short-lived access token with long-lived access token
if (!$accessToken->isLongLived()) {
// Exchanges a short-lived access token for a long-lived one
try {
$accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
} catch (Facebook\Exceptions\FacebookSDKException $e) {
echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n";
exit;
}
}
存储访问令牌并将用户重定向到您查询的位置
$response = $fb->get('/me/businesses', $accessToken);