Javascript FB.api - 未定义的错误

时间:2012-02-09 20:40:38

标签: javascript facebook facebook-graph-api

我正在尝试为facebook api使用JS接口,这是我的第一个应用程序。 这是一个片段:

HTML:

    <div id="fb-root"></div>
    <script src="https://connect.facebook.net/ru_RU/all.js"></script>
    <script type="text/javascript">facebook_init();</script>

JS:

function facebook_init() {
    FB.init({
      appId      : '<MY APP ID IS HERE>',
      channelUrl : '/media/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });
    FB.api('/me', function(response) {
              alert('Your name is ' + response.name);
            });
}

channel.html:

<script src="https://connect.facebook.net/ru_RU/all.js"></script>

加载此页面时,我的'你的名字未定义'。 但是这段代码

FB.ui({ method: 'apprequests',
      message: 'MSG',
      title: 'TITLE'});

按预期工作。 请你帮助我好吗? 谢谢!

3 个答案:

答案 0 :(得分:2)

如果您通过response you'll see what's wrong记录了console.log(response)变量: 您将收到包含此消息的错误对象:

"An active access token must be used to query information about the current user."

因此,如果您想获取有关当前用户的信息,您还必须发送一个访问令牌。要获得有关此内容的更多信息,请查看Facebook JS SDK页面。

答案 1 :(得分:1)

在致电FB.api('/ me',...)之前,您需要确保用户已登录Facebook并授权您的应用。

以下是一般信息:http://developers.facebook.com/docs/guides/web/#login

答案 2 :(得分:0)

要解决Undefined问题,请使用以下代码:

  window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
  appId      : '<APP ID>',                        
  status     : true,                                 
  xfbml      : true                                 
});

// Additional initialization code such as adding Event Listeners goes here

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
alert("connected");
connecter=true;
FB.api('/me', function(user) {
alert(user.name);
alert(user.first_name);
alert(user.last_name);
alert(user.email);
});

  } 
 });