Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook使用PHP API以页面形式发布到页面?_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Facebook使用PHP API以页面形式发布到页面?

Facebook使用PHP API以页面形式发布到页面?,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在尝试设置一个脚本,自动将消息发布到我管理的Facebook页面。我有下面的代码,但目前,不是以页面管理员的身份发布到页面的墙上,而是从我的个人帐户将帖子发送到页面的“访客帖子”部分。有没有办法解决这个问题 require_once('Facebook/autoload.php'); $fb = new Facebook\Facebook([ 'app_id' => 'myappid', 'app_secret' => 'myappsecret', 'default

我正在尝试设置一个脚本,自动将消息发布到我管理的Facebook页面。我有下面的代码,但目前,不是以页面管理员的身份发布到页面的墙上,而是从我的个人帐户将帖子发送到页面的“访客帖子”部分。有没有办法解决这个问题

require_once('Facebook/autoload.php');

$fb = new Facebook\Facebook([
  'app_id' => 'myappid',
  'app_secret' => 'myappsecret',
  'default_graph_version' => 'v2.5',
]);

$pageID = 'mypageid';
$accessToken = 'myaccesstoken';

try {
  $publish = $fb->post('/' . $pageID . '/feed', 
     array(
       'access_token' => $accessToken,
       'message' => $status,
       'to' => $pageID
       )
   );
} 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;
}

您需要使用页面的访问令牌,而不是您的个人令牌


使用您的个人访问令牌,呼叫
/me/accounts
。它将为您提供一个您是管理员的页面列表,并为每个页面访问令牌。

感谢您的帮助!我已使用
/me/accounts
在API Explorer中找到与页面关联的访问令牌,但现在我收到了错误:
图形返回错误:API参数中提供的appsecret证明无效
我检查了应用程序的高级设置,并禁用了“require app secret”。有什么想法吗?@user13286您可能正在使用一个古老版本的SDK
Facebook\Facebook
是旧语法。我最终生成了一个临时访问令牌(~1小时到期),然后使用调试器工具延长到期时间,现在它工作正常。再次感谢您的帮助!为什么要投否决票?