【问题标题】:Facebook Graph API console errorFacebook Graph API 控制台错误
【发布时间】:2014-08-18 08:21:17
【问题描述】:

我正在尝试使用 console.log 将提要显示到我的控制台中,但是它返回没有令牌的错误。

消息:“必须使用活动访问令牌来查询有关当前用户的信息。” 类型:“OAuthException”错误代码:2500;

上面的消息是我得到的。我已经按照FB给出的步骤进行了。

代码如下。

<script>

 window.fbAsyncInit = function() {
    FB.init({
      appId      : '',
      xfbml      : true,
      version    : 'v2.1',

    });
    FB.api('/me', {fields: 'last_name'}, function(response) {
    console.log(response);
     });

  };



  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "http://connect.facebook.net/en_UK/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));   


</script>
<div id="fb-root">
</div>

【问题讨论】:

  • 用户需要登录才能调用/me
  • 我已经登录facebook并获得了访问令牌,
  • 我没有看到任何登录代码。您究竟是如何登录用户的?并在初始化后立即调用 api 函数而不检查用户是否登录是一个坏主意......
  • 登录代码是什么样的?什么访问令牌?
  • FB.getLoginStatus(function(response) { if (response.status === 'connected') { console.log('Logged in.'); } else { FB.login(); } });

标签: javascript facebook facebook-graph-api


【解决方案1】:

您尝试在不要求用户先登录的情况下调用 API。相反,请删除代码中的 FB.api 行并将其替换为以下内容:

FB.login(function(){
  FB.api('/me', 'get', {fields: 'last_name'}, function (response ) {
    console.log(response);
  });
});

理想情况下,您应该在按下“登录”按钮时调用上述登录代码,例如:

<button type="button" onclick="doLogin();">Login to Facebook</button>

(记得将FB.login() 函数包装在doLogin() 函数中。)

【讨论】:

  • 您好添加代码但是它说明我没有活动访问令牌,错误:对象代码:2500 消息:“必须使用活动访问令牌来查询有关当前用户的信息。”类型:“OAuthException”我确实有有效的令牌。
  • 您需要登录用户才能获得access_token。上面的代码就是你可以用来登录用户的代码。
  • 使用按钮的onclick 调用它。例如。 &lt;button type="button" onclick="doLogin();"&gt;Login to Facebook&lt;/button&gt;
猜你喜欢
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多