PHP curl : Post to Facebook Page as Page

标签 php facebook facebook-graph-api curl

我尝试了一个示例代码来发布到 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 ?

最佳答案

如果它以您自己的身份发布,则您没有使用页面 token 。调试您的 token 并查看是否列出了页面 ID - 这就是您知道它是页面 token 的方式:https://developers.facebook.com/tools/debug/

顺便说一句,您应该使用新的 publish_pages 权限发布到页面:https://developers.facebook.com/docs/apps/changelog#v2_3_changes

有关如何获取访问 token 的信息:

关于PHP curl : Post to Facebook Page as Page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29466149/

相关文章:

javascript - 获取MySQL存储的字符串格式数组并转换为JSON对象数组

iPhone SDK/Facebook 连接 : Using a custom login dialog

Facebook 多好友选择器 + 新的 javascript API = 坏了?

ios - 使用 Cocoa 生成图像

ios - Facebook Audience Network 广告是否可以在未安装 Facebook 应用程序的情况下展示?

python - Facebook 营销 API 设置 action_attribution_windows 无 View

php - 从数据库中选择(从今天)差异最小的日期

php - 从 Controller Symfony2 中的 URL 获取参数

javascript - Jquery 适用于一个按钮,但不适用于另一个相同的按钮?

facebook-graph-api - 获取用户电子邮件服务器端facebook