Facebook 使用带有 API 的主页面创建业务

如何解决Facebook 使用带有 API 的主页面创建业务

我创建了一个具有以下权限的 Facebook 应用。

  • 业务_管理
  • ads_management
  • manage_pages
  • 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#business

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?