为什么有某些Facebook API方法,例如'我'停止了工作?

时间:2013-09-19 08:39:24

标签: facebook codeigniter facebook-graph-api

Codeigniter网站我使用FB PHP SDK设置了大约12个月来实现FB身份验证,相册访问和各种其他FB功能现在已停止工作。我发现了一个修复了一个bug的问题,但是我知道是什么导致了它,我可以做更多的事情。我猜我的FB PHP SDK版本可能已过时,但我在代码中看不到任何版本号。

ERROR:

$data = $this->facebook->api('/me');
  

错误:PHP致命错误:未捕获OAuthException:活动访问   必须使用令牌来查询有关当前用户的信息   投入   C:\的Inetpub \ mysite.com \的public_html \程序\库\ base_facebook.php   在线1108

FIX:

$data = $this->facebook->api($userId);

ERROR:

$sql = SELECT aid, owner, name, object_id FROM album WHERE owner = "USERID";
$this->facebook->api( array( 'method' => 'fql.query', 'query' => $sql ) );
  

错误:PHP致命错误:未捕获异常:102:会话密钥无效   或者不再有效   C:\的Inetpub \ mysite.com \的public_html \程序\库\ base_facebook.php   在线1108

来自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;
  }

0 个答案:

没有答案