Facebook Open Graph - 发布给所有已批准的用户Feed

时间:2010-05-12 17:03:11

标签: php facebook

我很难掌握向已批准的应用程序的所有成员发布Feed项目。

在用户的应用程序设置中,它声明应用程序有权发布到墙上但我只能在用户当前登录到Facebook时才能实现此目的。显然我希望这个功能能够让我上传的任何项目一次性发布到应用程序的所有成员。

我正在使用http://github.com/facebook/php-sdk/中的Facebook PHP SDK,目前我的代码如下:

    require 'src/facebook.php';


//Generates access token for this transaction
$accessToken = file_get_contents("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=MyAppId&client_secret=MySecret");

//Gets the full user details as an object
$contents = json_decode(file_get_contents("https://graph.facebook.com/SomeUserId?scope=publish_stream&" . $accessToken));

print_r($contents);

if ($facebook->api('/' . $contents->id . '/feed', 'POST', 
            array(
                'title' => 'New and Improved, etc - 12/03/2010',
                'link' => 'http://www.ib3.co.uk/news/2010/03/12/new-and-improved--etc',
                'picture' => 'http://www.ib3.co.uk/userfiles/image/etc-booking.jpg',
                'scope' => 'publish_stream'
                )
            )==TRUE) {
        echo "message posted";
    } else {
        echo "message failed";
    }

$contents的输出显示了预期的用户详细信息,但与我的应用程序的权限无关。我在这里错过了一招吗?

然后使用我收到的$facebook->api()函数

  

200 - 权限错误

。该应用程序无权执行此操作。

这让我觉得有些便利,因为我怀疑我在授权时错过了一些简单的东西,但又是什么?

非常感谢您提供的帮助。

1 个答案:

答案 0 :(得分:0)

昨天我遇到了同样的问题。最后我发现,虽然我已经设置了“发布到墙上的许可”,但我还必须这样做:

https://graph.facebook.com/oauth/authorize?client_id=XXXXXXX&scope=publish_stream&redirect=http://back.to.your.app/

在那里,最终用户将获得熟悉的Facebook“允许此应用程序访问您的信息?”对话。允许后,它将返回到您的应用程序,然后该应用程序将具有适当的权限。

希望这有帮助!