【问题标题】:Facebook's PHP SDK gives OAuth error to some users onlyFacebook 的 PHP SDK 仅向部分用户提供 OAuth 错误
【发布时间】:2011-07-19 06:43:42
【问题描述】:

我已经设置了 Facebook Connect,以便用户可以一键注册我的网站,并且它对大多数用户来说都完美无缺,但我收到了一些来自用户的电子邮件,它们收到以下错误:

PHP 致命错误:未捕获 OAuthException:一个活动的访问令牌 必须用于查询信息 关于当前用户。\n 抛出 /home/example/public_html/facebook.php 在第 453 行

我无法复制此错误,因此我很难找出导致此错误的原因。

我的 Facebook Connect 按钮代码:

<fb:login-button size="large" length="long" v="2" perms="email,user_birthday" onlogin="fb_login()"></fb:login-button>
<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
        FB.init({appId: '.....', status: true, cookie: true, xfbml: true});
    };
    (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol +
        '//static.ak.fbcdn.net/connect/en_US/core.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());

    function fb_login() {
        FB.getLoginStatus(function(response) {
            if (response.session) {
                window.location = 'http://example.com/register_fb.php';
            }
        });
    }
</script>

我的 PHP 代码:

require './facebook.php';

$facebook = new Facebook(array(
  'appId'  => '....',
  'secret' => '....',
  'cookie' => true,
));

$session = $facebook->getSession();
$user = $facebook->api('/me');

//// register the user or log them in...

【问题讨论】:

    标签: php facebook facebook-graph-api


    【解决方案1】:

    缩小他们使用的浏览器将有助于调试。

    没有这一点并根据您的代码,我可以想到会导致此问题的一件事; Javascript SDK 无法通过登录按钮设置 cookie。

    这可能在某些浏览器中发生,具体取决于框架等。

    处理此问题,您可以检测 facebook->getSession() 是否为空,然后重定向到 $facebook->getLoginUrl()(无论如何这都是个好主意)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 2014-07-31
      • 2011-11-15
      • 1970-01-01
      相关资源
      最近更新 更多