我正在建立一个网络应用程序(PHP),使用FB连接。在facebook提供的PHP库的帮助下,我成功地注册/登录了用户。我还可以使用下面的代码发布到wall
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
$facebook = new Facebook(array(
'appId' => $fb_key,
'secret' => $fb_secret,
'cookie' => true, // enable optional cookie support
));
$session = $facebook->getSession();
if ($session)
{
$facebook->api('/me/feed', 'POST', array('message'=>$message, 'link'=>$link['href'], 'name'=>$link['text']));
}但是,如果我手动转到浏览器的cookie管理器并删除存储FB会话的cookie,代码将无法工作。我唯一有的是用户的FB ID,我存储在数据库中。有没有办法在FB会话丢失的情况下发布到用户的墙上?将用户的FB访问令牌存储在数据库中以便稍后发布到wall中是否有意义,或者访问令牌是否相对短暂?
这是一个可能在我的应用程序中发生的示例情况:用户单击FB按钮,授权我的应用程序,被重定向回我的网站,在那里我根据fb提供的数据自动创建一个帐户,同时我还存储了用户的FB ID,以便稍后可以登录此用户。现在他浏览网站,输入一些信息,这些信息就会发布到他的墙上。到目前为止一切都很好,因为用户的浏览器持有由FB创建的cookie。现在用户离开该网站,并联系网站管理员。Admin打开他自己的浏览器,进入管理界面,代表这个用户发布一些东西。现在,有了该用户的FB ID,并假设该用户没有撤销权限,我仍然可以将这篇文章发布到他的墙上吗?
发布于 2011-01-06 04:14:32
UPDATE:此答案不再有效,因为offline_access已弃用。
您需要申请offline_access权限。检查permissions文档。
编辑的每一个更新和评论-关于删除offline_access的一些信息可以在here中找到。
发布于 2011-05-28 12:02:38
使用Facebook PHP SDK v3 (see on github),询问和使用用户离线访问令牌非常简单。下面是你如何做到这一点的。
获取脱机访问令牌
首先,检查用户是否已登录:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}如果他不是,你会生成一个“登录Facebook”的网址,请求offline_access权限:
if (!$user) {
$args['scope'] = 'offline_access';
$loginUrl = $facebook->getLoginUrl($args);
}然后在模板中显示链接:
<?php if (!$user): ?>
<a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>然后,当用户登录时,您可以检索并存储脱机访问令牌。要获取它,请调用:
if ($user) {
$token = $facebook->getAccessToken();
// store token
}使用脱机访问令牌
要在用户未登录时使用离线访问令牌,请执行以下操作:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$facebook->setAccessToken("...");现在,您可以为此用户进行API调用:
$user_profile = $facebook->api('/me');希望这能有所帮助!
https://stackoverflow.com/questions/4608713
复制相似问题