0

我有两个单独的 js 文件,domready.jsfb-jssdk.js

jssdk 处理加载 sdk 和登录。当用户登录或未登录时,它会从 response.state 返回正确的状态,具体取决于场景。

我感到困惑的是,当用户登录并使用 jQuery 在我的网站上使用它时,我如何使用从 FB 响应和 FB.api 获得的数据来获取姓名和电子邮件。

编辑: 我想知道如何在与 fb 代码所在的文件不同的 js 文件中使用响应内容,并将其与 jQuery 事件处理程序一起使用。

因此,如果我有一个名为 testAPI() 的函数将 response.name 打印到控制台,我如何获取 response.name = "Kryptonite Dove" 的数据以在另一个文件中使用?

测试API()

function testAPI() {
console.log('Welcome!  Fetching your information.... ');
FB.api('/me', function(response) {
    console.log('Good to see you, ' + response.name + '.');
    var state = response.name;
    return response.name;

});
}

一些功能

   $("#id").click(function() {
      if (response.name == "Kryptonite Dove") {
        // Do something
      }
   });
4

1 回答 1

5

您正在尝试访问response,这是不同函数中的局部变量(请参阅:https ://developer.mozilla.org/en-US/docs/JavaScript/Guide/Closures )。所以你可以做的一件事是将它分配给一个全局变量,然后在你的另一个函数中访问它。

var saved_response;

function testAPI() {
  console.log('Welcome!  Fetching your information.... ');
  FB.api('/me', function(response) {
      console.log('Good to see you, ' + response.name + '.');
      var state = response.name;
      saved_response = response;

      return response.name;
  });
}



$("#id").click(function() {
   if (saved_response.name == "Kryptonite Dove") {
     // Do something
   }
});
于 2013-03-20T20:47:18.643 回答