【问题标题】:facebook offline_access errorfacebook离线访问错误
【发布时间】:2011-06-13 21:49:43
【问题描述】:

在用户离线时访问用户信息, 用户授予离线访问权限,我通过以下方式存储它们:

$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=[数据库中保存的访问令牌]

我有什么错?

【问题讨论】:

    标签: facebook-php-sdk


    【解决方案1】:

    首先,具有offline_access 权限的访问令牌可能会在以下情况下失效:

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

    您可以阅读 Facebook about how to handle expired tokens 的博客文章。

    那么,你不应该:

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

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

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多