Tan*_*ner 6 error-handling facebook
偶尔会出现这个错误:
致命错误:未捕获异常:190:验证访问令牌时出错:这可能是因为用户已注销或可能是由于系统错误.在1053行的..base_facebook.php中引发
问题是我在随机时间得到它,没有任何警告.我可以在几周内没有看到它,然后突然间它会出现.解决方案?你可以等一下.它会抛出此错误大约15分钟,然后您可以刷新它,它将允许您继续您正在做的事情.
我的问题是,这是我的问题吗?或者这是Facebook的问题?如果有帮助,这是一个Facebook连接页面.我做了研究,发现它可能是由FQL查询引起的.但至少它不会一致吗?看起来它完全是随机的.这是我的FQL查询,以防万一.
$facebook->api(array('method' => 'fql.query','query' => "SELECT first_name,middle_name,last_name,email,affiliations FROM user WHERE uid=".$user));
Run Code Online (Sandbox Code Playgroud)
以下是Base_Facebook的第1052-1071行,
protected function throwAPIException($result) {
$e = new FacebookApiException($result);
switch ($e->getType()) {
// OAuth 2.0 Draft 00 style
case 'OAuthException':
// OAuth 2.0 Draft 10 style
case 'invalid_token':
// REST server errors are just Exceptions
case 'Exception':
$message = $e->getMessage();
if ((strpos($message, 'Error validating access token') !== false) ||
(strpos($message, 'Invalid OAuth access token') !== false)) {
$this->setAccessToken(null);
$this->user = 0;
$this->clearAllPersistentData();
}
}
throw $e;
Run Code Online (Sandbox Code Playgroud)
}
谢谢
Jui*_*ter 10
正如编写方法:处理过期的访问令牌(链接已损坏)开发人员博客文章
由于各种原因,用户的访问令牌可能变得无效.在大多数情况下,如果超过
expires字段指定的时间,它们可能会过期(默认情况下,访问令牌的生命周期为2小时).许多开发人员没有意识到,如果用户更改密码,注销或者通过App Dashboard取消授权应用程序,访问令牌也会过期.您的应用处理此类情况非常重要.如果您的访问令牌过期,则需要重新获取有效的访问令牌.
在我们可以使用offline_access权限获取未过期的令牌(除非用户与应用程序连接)之前,此权限现已弃用,请参阅脱机访问权限的弃用,以了解如何获得access_token更长的到期时间.
更新:
截至2012年8月,Facebook PHP-SDK 添加了简单的扩展方式access_token(有关更多详细信息,请参阅如何扩展访问令牌的有效性,因为offline_access已弃用)
更新2: 请注意,Facebook上关于过期令牌处理的原始博客帖子不再存在.可以使用新的文档来获取详细信息. https://developers.facebook.com/docs/facebook-login/access-tokens/#extending
| 归档时间: |
|
| 查看次数: |
17880 次 |
| 最近记录: |