在离线时访问用户信息, 用户授予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中的访问令牌]
我的错是什么?
答案 0 :(得分:2)
首先,如果符合以下条件,offline_access
权限的访问令牌可能会失效:
您可以在Facebook about how to handle expired tokens上阅读博文。
然后,你不应该:
graph.facebook.com/[function]...
时一样,但使用Facebook PHP SDK函数进行API调用。$facebook->getSession()
来自v2.x),这可能是导致问题的原因。以下是关于how to handle offline_access
access tokens with the Facebook PHP SDK v3.x的Stackoverflow的答案。
希望有所帮助!