【发布时间】:2011-01-05 20:11:26
【问题描述】:
我正在构建一个使用 FB 连接的网络应用程序 (PHP)。我在 facebook 提供的 PHP 库的帮助下成功注册/登录用户。我也可以使用此代码发布到墙上
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 访问令牌存储在数据库中以便稍后发布到墙上是否有意义,或者访问令牌的寿命相对较短?
以下是我的应用中可能发生的示例情况: 用户单击 fb 按钮,授权我的应用程序,被重定向回我的网站,在那里我根据 FB 提供的数据自动创建一个帐户,我还存储了用户的 FB ID,以便我以后可以登录该用户。现在他浏览网站,输入一些信息,然后这些信息被发布到他的墙上。到目前为止一切都很好,因为用户的浏览器保存了 FB 创建的 cookie。现在用户离开站点并联系站点管理员。管理员打开他自己的浏览器,进入管理界面并代表该用户发布一些内容。现在,有了该用户的 FB ID 并假设该用户没有撤销权限,我还能将其发布到他的墙上吗?
【问题讨论】:
标签: php facebook oauth facebook-graph-api fbconnect