facebook offline_access错误

时间:2011-06-13 21:49:44

标签: facebook-php-sdk

在离线时访问用户信息, 用户授予offline_access并按此存储它们:

$session=$facebook->getSession();
if($session)
{
    $access_token=$session['access_token'];

}

$qq=sprintf("insert into `tokens`(`uid`,`access_token`) values ('%s','%s')",$myid,$access_token);
$res1=mysql_query($qq);

但是当我尝试使用graph.facebook.com从他们那里收集信息时,它有时会工作,有时则不会给我这个错误:

验证访问令牌时出错:会话与当前存储的会话不匹配。这可能是因为用户在创建会话时更改了密码,或者Facebook出于安全原因更改了会话

我使用graph.facebook.com/ [function]?access_token= [保存在DB中的访问令牌]

我的错是什么?

1 个答案:

答案 0 :(得分:2)

首先,如果符合以下条件,offline_access权限的访问令牌可能会失效:

  • 用户在其隐私设置中取消授权您的应用
  • 用户更改密码

您可以在Facebook about how to handle expired tokens上阅读博文。

然后,你不应该:

  • 直接使用网址制作API网址,就像调用graph.facebook.com/[function]...时一样,但使用Facebook PHP SDK函数进行API调用。
  • 不推荐使用您正在使用的PHP SDK版本($facebook->getSession()来自v2.x),这可能是导致问题的原因。

以下是关于how to handle offline_access access tokens with the Facebook PHP SDK v3.x的Stackoverflow的答案。

希望有所帮助!