0

我有一个 Facebook 应用程序,我想用它代表他们在客户的 Facebook 页面墙上发帖。我现在设置了它,这样当他们对我的应用程序进行身份验证时,我得到了访问令牌,但是当我去贴墙时,我收到以下错误:“OAuthException:验证访问令牌时出错:会话无效,因为用户登录出去。”

如何在不登录的情况下从我的脚本发布?

这是我的代码:

include_once('fb-php-sdk/src/facebook.php');
$facebook = new Facebook(array(
    'appId' => 'XXX',
    'secret' => 'XXX',
));
try {
    $page_id = '215133535279290'; //page id of the customer's facebook page
    $args = array(
        'access_token' => 'XXX', //access token received when user authenticated app
        'message'      => 'A test message'
    );
    $post_id = $facebook->api("/$page_id/feed","post",$args);
} catch (FacebookApiException $e) {
echo "Error:" . $e;
}
4

2 回答 2

0

新的 facebook API 具有所谓的扩展访问令牌(它取代了离线访问:我认为https://developers.facebook.com/roadmap/offline-access-removal/),我相信它可以持续长达 60 天(或类似那)。要使用它,只需在通过您的网站登录时获取访问令牌:

$token = $facebook->getAccessToken();

将其保存到 Db 并稍后使用此令牌:

$facebook = new Facebook();
$facebook->setAccessToken($accessTokenFromDB);

然后您应该能够继续,就好像用户已登录一样。

至于用户被注销的部分,请确保您使用的是最新版本的 API 而不是旧版本,并确保“场景 2:如果您之前请求过离线访问 - 更新 4/30/”下的内容2012”我链接的页面的标题。

您可以继续使用offline_access到 10 月 3 日,但是如果它在 2 个月内被真正关闭并且必须重写您的代码,那为什么?

于 2012-08-02T13:04:34.163 回答
0

获得publish_stream扩展权限。获得此权限后,您可以在用户离线时使用您的应用访问令牌发布提要故事。在这种情况下,不需要offline_access权限或保存和使用用户访问令牌。

于 2012-08-02T15:16:05.933 回答