【问题标题】:Post to facebook page wall as a page作为页面发布到 facebook 页面墙
【发布时间】:2015-11-02 19:58:04
【问题描述】:

我想使用 PHP 作为页面发布到 facebook 页面墙。我通过以下链接获得了 access_token。

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=123456789&redirect_uri=http%3A%2F%2Fmysite.net&scope=publish_stream,manage_pages,offline_access
https://graph.facebook.com/me/accounts?access_token=...

我正在使用这个简单的代码:

$appid        = "";
$secret       = "";
$pageid       = "";
$access_token = "";

require_once("facebook-php-sdk/src/facebook.php");

$facebook = new Facebook(array(
  'appId'  => $appid,
  'secret' => $secret
));

try {
    $args = array(
        'access_token' => $access_token,
        'message'      => 'Test', 
        'link'         => 'http://www.test.com',
        'description'  => 'Test'
    );

    $post_id = $facebook->api("/$pageid/feed","post",$args);

} catch (FacebookApiException $e) {
    error_log($e);
}

这就是我得到的错误:

OAuthException: (#200) Posts where the actor is a page cannot also include a target_id 

但是发布 /me/feed 也不起作用。我用谷歌搜索的所有解决方案都不再起作用了,官方文档也没有帮助。我在以用户身份(而不是页面)和 javascript api(用户需要“共享”点击操作)发布时让它工作。

有人知道自动发布到fb页面作为页面的解决方案吗?花了几天的沮丧试图弄清楚 -_-

谢谢,

一个。

【问题讨论】:

  • PHP 代码很好,但我得到了错误的 access_token。我得到了具有不同应用程序的正确应用程序(简单的 facebook 连接 - 一个 wordpress 插件)。没有时间去获取正确的 access_token :/

标签: php facebook facebook-graph-api


【解决方案1】:

我也遇到了同样的问题。原因是我是多个页面的管理员,我试图用另一个页面的令牌发帖。

【讨论】:

    【解决方案2】:

    页面不能发布到用户的墙上(这就是为什么你会得到OAuthException,上面写着“作为一个页面,你不能设置target_id”)。您必须首先创建一个应用程序并获得用户的许可 (publish_stream) 才能通过该应用程序发布到他们的提要。

    【讨论】:

    • 感谢您的回答。我正在尝试发布到页面墙上(因此 /$pageid/feed 和 $access_token)。我已经创建了应用程序(设置权限)。明天我会仔细查看 stream.publish。
    • 好的,找到更多时间。正如我在第一篇文章中所写,我的应用程序已经拥有 publish_stream 权限(第 2 行)。我设法通过 stream.publish 发布,但由于不推荐使用 REST API,我将尝试使用 opengraph 来发布。
    【解决方案3】:

    我假设您对应用程序以及发布的工作原理有所了解。

    1.您必须获得页面访问令牌并在数组上使用它。

    2.你用这个

    "/$pageid/feed"
    

    试试这个

    $facebook->api($pageID . '/feed','POST'
    

    谢谢...

    【讨论】:

    • 如果你看我的帖子,你会看到 1) 我已经有访问令牌 2) 我通过 $facebook->api("/$pageid/feed"," post",$args);
    • @akashic 尝试将 $pageid 分开
    • @akashic 检查这个链接它关于同样的问题jorgealbaladejo.com/2011/06/13/…
    猜你喜欢
    • 2011-08-11
    • 2012-06-13
    • 2010-11-25
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多