【发布时间】:2011-05-23 19:57:55
【问题描述】:
我有一个博客系统,我希望用户能够在 Facebook 墙上发帖,而无需登录 Facebook。我希望通过 Facebook 提供的 PHP SDK 来实现。
这是我授予我创建的 Facebook 应用程序的权限:
https://www.facebook.com/dialog/oauth?client_id=xxxxxxxx&redirect_uri=http://www.mydomain.com/facebook/index/&scope=offline_access,publish_stream,read_stream,manage_pages
只是为了澄清权限:offline_access、publish_stream、read_stream、manage_pages
以下代码仅在用户登录时才有效。否则我会收到此错误:
FacebookApiException [ 0 ]:必须使用活动访问令牌来查询有关当前用户的信息。
public function facebook()
{
require_once('facebook/php-sdk-3.0.0/src/facebook');
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxx',
'cookie' => true,
));
$attachment = array(
'access_token' => $facebook->getAccessToken(),
'message' => 'this is my message',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'http://www.google.com',
'description' => 'Test of application PHP',
'picture' => 'http://www.lalibre.be/img/logoLaLibre.gif',
'actions' => array(array(
'name' => 'Get Search',
'link' => 'http://www.google.com')
)
);
$result = $facebook->api('/me/feed/','post',$attachment);
print_r($facebook->getAccessToken());
}
【问题讨论】:
-
也许我不明白你的问题,但是如果他们没有登录,他们将如何发布到他们的 Facebook 墙上?这似乎是一个不可避免的先决条件。
-
我正在使用创建了一个 Facebook 应用程序。再加上 Facebook 的 PHP SDK,您可以更新用户的墙。由于应用程序有权更新墙,因此用户似乎也不必登录。
-
如果你有用户名,试试这个
$facebook->api('/user_id/feed/', 'post', $attachment);