Php 存储facebook会话数据

Php 存储facebook会话数据,php,facebook,Php,Facebook,我正在使用Facebook PHP SDK,并在用户登录时存储会话 if ($session = $facebook->getSession()) { mysql_query("UPDATE fb_session SET app_session = '" . addslashes(serialize($session)) . "' WHERE user_id = " . $uid); } 我有一个正在运行的cron脚本,它通过以下方式使用facebook API作为用户: $fa

我正在使用Facebook PHP SDK,并在用户登录时存储会话

if ($session = $facebook->getSession()) {
    mysql_query("UPDATE fb_session SET app_session = '" . addslashes(serialize($session)) . "' WHERE user_id = " . $uid);
}
我有一个正在运行的cron脚本,它通过以下方式使用facebook API作为用户:

$facebook->setSession(unserialize($row['app_session']), false);
将脚本设置为正确的用户

问题是当用户从facebook注销时,会话不再有效,需要他们再次登录。我有一个cron脚本,所以这会把它搞砸,因为没有用户交互


我的目的是存储不同的内容吗?

是的,当用户连接应用程序时,您需要请求
脱机访问
权限,这将为您提供永久而非临时访问令牌。

您想做什么

如果您只想代表用户发布,则只需请求
发布\u流
权限,并将用户id存储在数据库中。
之后,您可以发布而无需“获取会话”(即无需
$facebook->setSession(…)


如果要执行其他任务,请获得
脱机访问
权限,并仅将
访问令牌
与用户id一起存储在数据库中,除了安全问题之外,使用setSession发送访问令牌是否会有任何不同,即会话是否会过期,访问令牌是否没有超时?我不确定你在问什么,但正如我所说的……如果你只需要“发布”然后您只需要
publish\u stream
和用户id,就可以使用有效的会话或访问令牌。现在,对于您需要
脱机访问
和存储
访问令牌
+用户标识的其他内容,检索到的访问令牌不会超时,并且无需检查设置会话是否过期!