Kry*_*ove 0 javascript jquery facebook facebook-graph-api facebook-javascript-sdk
我有两个单独的js文件,domready.js和fb-jssdk.js.
jssdk处理加载sdk和登录.它在用户登录时从response.state返回正确的状态,具体取决于方案.
我感到困惑的是我如何使用FB响应中获得的数据和FB.api来获取用户登录时的名称和电子邮件,并使用jQuery在我的网站上使用它.
编辑: 我想知道如何在fb代码所在的单独的js文件中使用响应的内容,并将其与jQuery事件处理程序一起使用.
因此,如果我有一个名为testAPI()的函数将response.name输出到控制台,那么如何在另一个文件中获取response.name ="Kryptonite Dove"的数据呢?
testAPI()
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;
});
}
Run Code Online (Sandbox Code Playgroud)
一些功能
$("#id").click(function() {
if (response.name == "Kryptonite Dove") {
// Do something
}
});
Run Code Online (Sandbox Code Playgroud)
您正尝试访问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
}
});
Run Code Online (Sandbox Code Playgroud)