0

对不起,如果有类似这个问题的帖子,我检查了但我找不到任何..

我正在使用tank_auth_socialFacebook 登录。

https://github.com/sicsol/Tank-Auth-Social

也有人在问题上提到了这个问题但没有回复..

https://github.com/sicsol/Tank-Auth-Social/issues/2

用户在第一次登录时从 Facebook 授予访问权限后,它会抛出这样的异常。

致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。在第 1058 行的 /home/hayvanse/public_html/application/libraries/facebook/base_facebook.php 中抛出

是的,所以我们不能写令牌,这意味着是吗?但是当我点击登录时,它就可以工作了。第一个仅因一个问题而给出例外,我认为这与 Facebook 令牌无关。

我真的是 Facebook 连接东西的新手,我更新了 Facebook 和base_facebook图书馆,但没有工作。

我希望有这个问题,可以帮助我。这是基于这一行的函数,所以我想知道我是否只是跳过异常,我真的很困惑,整晚都在寻找它:(

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;
}
4

1 回答 1

1

请使用此功能更新 base_book,请检查链接。主要问题是getuser返回0。你必须更新base_Facebook文件上的代码。(最新的sdk)

protected function getCode() {
$server_info = array_merge($_GET, $_POST, $_COOKIE);

if (isset($server_info['code'])) {
    if ($this->state !== null &&
            isset($server_info['state']) &&
            $this->state === $server_info['state']) {

        // CSRF state has done its job, so clear it
        $this->state = null;
        $this->clearPersistentData('state');
        return $server_info['code'];
    } else {
        self::errorLog('CSRF state token does not match one provided.');
        return false;
    }
}

return false;

}

使用 CodeIgniter + Facebook PHP SDK 时:getUser() 总是返回 0

于 2013-09-24T14:46:14.623 回答