[英]Post to Facebook Page Wall without logged in user
我有一个Facebook应用程序,我想用来代表他们在客户的Facebook Page Walls上发布。 我有它设置现在这样,当他们验证自己的应用程序,我得到的访问令牌,但是当我去张贴到我收到以下错误墙上:“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;
}
新的Facebook API具有所谓的扩展访问令牌(它代替了脱机访问: https : //developers.facebook.com/roadmap/offline-access-removal/我认为),我认为它可以持续60天(或类似的时间)那)。 要使用它,只需在通过您的网站登录时获取访问令牌即可:
$token = $facebook->getAccessToken();
将其保存到Db并在以后使用此令牌:
$facebook = new Facebook();
$facebook->setAccessToken($accessTokenFromDB);
然后,您应该能够像用户已登录一样继续操作。
至于被注销的用户,请确保您使用的是最新版本的API,而不是旧版本,还请确保“方案2:如果您以前曾请求offline_access-更新4/30 / 2012" 我的链接页面的标题。
您可以继续使用offline_access
直到10月3日,但是那为什么要在2个月的时间内将其关闭,而必须重写代码。
获取publish_stream
扩展权限。 拥有此权限后,您可以在用户离线时使用您的应用访问令牌发布Feed故事。 在这种情况下,不需要offline_access
权限或保存和使用用户访问令牌。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.