首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook令牌无效,但可以访问api

Facebook令牌无效,但可以访问api
EN

Stack Overflow用户
提问于 2014-12-15 02:16:31
回答 1查看 174关注 0票数 0

我有一个来自facebook的令牌(来自图形资源管理器工具)。我正在使用PHP。我使用上述令牌创建了一个会话,并调用了FacebookSession::called ()方法。结果却是真的。我把它上传到一个测试服务器中,当我运行它时,它说会话已经过期了。我调试了令牌,有效期应该是2个月。

当我尝试获取用户信息(在测试服务器中)时,它也能工作。甚至是会议信息。它只在调用validate()方法时抛出“会话已过期”异常。你知道我做错了什么吗?请注意,这是在我将其上传到一个实时服务器之后才发生的。本地服务器和活动服务器上的代码是相同的。

这是一个示例代码。通过调用setDefaultApplication()方法已经设置了appid和机密。

代码语言:javascript
复制
<?php

\Facebook\FacebookSession::setDefaultApplication('app-id','app-secret');
$s = new \Facebook\FacebookSession('my-access-token');
$u = null;
try {
    $fbr = new \Facebook\FacebookRequest($s, 'GET', '/1663246619?fields=id,first_name,last_name,gender,email,birthday,bio');
    $u = $fbr->execute();
    $i = $s->getSessionInfo();
    var_dump($i->getProperty('is_valid'));
    var_dump($s->validate());
} catch(\Exception $e) {
    var_dump($e->getMessage());
}

var_dump($u->getGraphObject()->asArray());

这是我们的回应

代码语言:javascript
复制
bool(true)

string(50) "Session has expired, or is not valid for this app."

array(11) {
  ["id"]=>
  string(10) "1663246619"
  ["email"]=>
  string(22) "my-email@email.com"
  ["first_name"]=>
  string(12) "Kapitanluffy"
  ["gender"]=>
  string(6) "female"
  ["last_name"]=>
  string(6) "Pirata"
  ["link"]=>
  string(34) "http://www.facebook.com/1663246619"
  ["locale"]=>
  string(5) "en_US"
  ["name"]=>
  string(19) "Kapitanluffy Pirata"
  ["timezone"]=>
  int(8)
  ["updated_time"]=>
  string(24) "2014-12-06T23:47:48+0000"
  ["verified"]=>
  bool(true)
}

其他说明:

  • 访问令牌是用于我的应用程序的
  • 我正在使用facebook-php-sdk-v4版本4.0.3
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-15 17:27:33

您需要将SDK版本升级到最新的稳定版本4.0.12。自错误修复和安全更新以来,已经有了大量的4.0.3。其中一个bug与您遇到问题的会话信息验证有关。希望能解决你的问题。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27476470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档