用PHP更新Facebook墙

用PHP更新Facebook墙,php,facebook-graph-api,Php,Facebook Graph Api,我有一个博客系统,我希望用户能够在那里发布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_strea

我有一个博客系统,我希望用户能够在那里发布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
只是为了澄清权限:脱机访问、发布流、读取流、管理页面

以下代码仅在用户登录时有效。否则我会得到这个错误:

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应用程序。再加上Facebook上的PHPSDK,你就可以更新用户的防火墙了。由于应用程序具有更新墙的权限,因此似乎不需要用户也必须登录。如果您有用户id,请尝试此
$facebook->api('/user\u id/feed/','post',$attachment)如果您查看我的帖子,您可以看到我已向应用程序授予了该权限。如果您查看我的帖子,您可以看到我已向应用程序授予了相应的权限