我创建了一个具有以下权限的 facebook 应用程序。
- 商业管理
- 广告管理
- 管理页面
- ads_read
我正在使用此代码获取 USER_ACCESS_TOKEN
<?
use Facebook\Exceptions\FacebookResponseException;
use Facebook\Exceptions\FacebookSDKException;
// Init PHP Sessions
session_start();
$fb = new Facebook\Facebook([
'app_id' => 'APP_ID',
'app_secret' => 'APP_SECRET',
]);
$helper = $fb->getRedirectLoginHelper();
if (!isset($_SESSION['facebook_access_token'])) {
$_SESSION['facebook_access_token'] = null;
}
if (!$_SESSION['facebook_access_token']) {
$helper = $fb->getRedirectLoginHelper();
try {
$_SESSION['facebook_access_token'] = (string) $helper->getAccessToken();
} catch(FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
}
if ($_SESSION['facebook_access_token']) {
echo "<p>You are logged in!</p>";
} else {
$permissions = ['ads_management, business_management, email, manage_pages'];
$loginUrl = $helper->getLoginUrl('https://bm-manager.loc/', $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook</a>';
}
?>
然后用户单击链接 create-bm-manager.php。
<?
$access_token = $_SESSION['facebook_access_token'];
if (!$access_token) {
die('токен пустой');
}
$params = [
'form_params' => [
'name' => $_POST['company_name'],
'vertical' => $_POST['business_vertical'], //
'primary_page' => $_POST['primary_page'],
'timezone_id' => '1',
'access_token' => $access_token
]
];
$client = new GuzzleHttp\Client();
try {
$res = $client->request('POST', 'https://graph.facebook.com/v10.0/me/businesses', $params);
} catch (RequestException $e) {
echo Psr7\Message::toString($e->getRequest());
if ($e->hasResponse()) {
echo Psr7\Message::toString($e->getResponse());
}
}catch(Exception $e){
echo 'faff';
}
$jsonResult = json_decode($res->getBody());
?>
我正在使用具有权限的用户令牌创建业务经理帐户,但出现错误:“要使用主页创建业务,您必须是该页面的管理员”。
为什么会出现错误?
我使用这个文档
https://developers.facebook.com/docs/marketing-api/business-manager/guides/on-behalf-of https://developers.facebook.com/docs/marketing-api/business-manager/get-started #商业
创建业务经理的用户拥有页面和权限管理员。
应用程序的所有者不是用户页面的管理员。
该文档没有说明应用程序的所有者必须是用户页面的管理员。