我正在构建一个使用FB连接的Web应用程序(PHP)。我通过facebook提供的PHP lib的帮助成功注册/登录用户。我也可以张贴到墙上,使用此代码我可以存储Facebook访问令牌并在以后使用它吗?
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的,代码不起作用。我唯一拥有的是我用DB存储的用户FB ID。即使FB会话丢失,是否有任何方法可以发布到用户的墙上?将用户的FB访问令牌存储在数据库中以便稍后发布到墙上或访问令牌相对较短是否有意义?
这里是我的应用程序可能发生的示例情形: 用户点击FB按钮,授权我的应用程序,被重定向回我的网站,我基于由FB提供的数据自动创建一个帐户,我也存储用户的FB ID以便我可以稍后登录该用户。现在他浏览网站,输入一些信息,并将此信息发布到他的墙上。目前一切都很好,因为用户的浏览器持有由FB创建的cookie。现在用户离开该网站并联系网站管理员。管理员打开他自己的浏览器,进入管理界面并代表该用户发布内容。现在,拥有该用户的FB ID并假定该用户没有撤销权限,我仍可以将此内容发布到他的墙上吗?
谢谢,效果很好! – Eugene 2011-01-05 20:40:31
这将被弃用。尝试使用60天的access_token。 – funerr 2012-06-13 19:37:34