0

我创建了一个具有以下权限的 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 #商业

创建业务经理的用户拥有页面和权限管理员。

应用程序的所有者不是用户页面的管理员。

该文档没有说明应用程序的所有者必须是用户页面的管理员。

4

0 回答 0