我使用 FB PHP SDK 建立了大约 12 个月的 Codeigniter 站点来实现 FB 身份验证、相册访问和各种其他 FB 功能,现在已经停止工作。我找到了一个错误的修复程序,但我还有更多,并且可以知道是什么导致了它。我猜我的 FB PHP SDK 版本可能已经过时,但我在代码中看不到任何版本号。
错误:
$data = $this->facebook->api('/me');
错误:PHP 致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。
在第 1108 行的 C:\inetpub\mysite.com\public_html\application\libraries\base_facebook.php 中抛出
使固定:
$data = $this->facebook->api($userId);
错误:
$sql = SELECT aid, owner, name, object_id FROM album WHERE owner = "USERID";
$this->facebook->api( array( 'method' => 'fql.query', 'query' => $sql ) );
错误:PHP 致命错误:未捕获的异常:102:会话密钥无效或不再有效在第 1108 行的 C:\inetpub\mysite.com\public_html\application\libraries\base_facebook.php 中抛出
来自 base_facebook.php 的第 1107-1127 行
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) ||
(strpos($message, 'An active access token must be used') !== false)
) {
$this->destroySession();
}
break;
}
throw $e;
}