首页 文章

PHP cURL:作为页面发布到Facebook页面

提问于
浏览
1

我尝试了一个示例代码发布到Facebook页面 . 但它是我自己发布的 . 我已经包含了Page_access_token .

授予的权限是'manage_pages'和'publish_action' . 这是我的代码:

<?php

    $page_id='xxxx';
    $page_access_token='cccc';
    $url="https://graph.facebook.com/{$page_id}/feed?message=Hello&access_token=".$page_access_token;
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_REFERER, '');
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    $value = json_decode(curl_exec($ch));
    $var_dump($value);

?>

我哪里错了?我该如何解决?我希望它作为页面发布 . 谢谢

编辑:我的新代码与/ $ PAGE_ID?fields = access_token:

<?php
  $page_id='xxx';
  $message='helloworld';
  $url="https://graph.facebook.com/v2.3/{$page_id}?fields=access_token";
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_POST, true);
  curl_setopt($curl, CURLOPT_REFERER, '');
  curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
  curl_setopt($curl, CURLOPT_AUTOREFERER, true);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $message);
  curl_setopt($curl, CURLOPT_TIMEOUT, 10);

  $json = json_decode(curl_exec($curl));
  var_dump($json);
?>

这会返回一个错误:

object(stdClass)#1 (1) {
  ["error"]=>
  object(stdClass)#2 (3) {
    ["message"]=>
    string(64) "(#210) A page access token is required to request this resource."
    ["type"]=>
    string(14) "OAuthException"
    ["code"]=>
    int(210)
  }
}

我哪里错了?

我是否需要从图API探测器创建page_access_token?或者上面的网址就足够了?我应该如何使用User_access_token来获取page_access_token?

2 回答

相关问题