不能在FB中声明任何东西.api方法
Can't declare anything inside FB.api method
我正在玩facebook的javascript sdk,无法将用户的电子邮件地址发送到服务器。下面是代码:
<script type="text/javascript">
function fbLogin(){
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
$("<form id='fb_credentials' action='/create_user_with_fb' method='post'></form>").appendTo('body');
$("<input id='user_uid' type='hidden' />").appendTo("#fb_credentials");
$("<input id='user_access_token' type='hidden' />").appendTo("#fb_credentials");
$("<input id='user_email' type='hidden' />").appendTo("#fb_credentials");
$("input#user_uid").attr({
name: 'user[uid]',
value: response.authResponse['userID']
});
$("input#user_access_token").attr({
name: 'user[access_token]',
value: response.authResponse['accessToken']
});
FB.api('/me', function(response){
$("input#user_email").attr({
name: 'user[email]',
value: response.email
});
});
$('form#fb_credentials').submit();
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'email, publish_actions, offline_access'});
}
</script>
注意:fbLogin
函数在onClick
事件中被调用。
我在这里要做的是使用JS SDK获取用户id, access_token和电子邮件。然后使用JQuery创建一个表单,并通过http post方法发送信息。
我可以得到所有的信息,除了用户的电子邮件地址。我做错了什么?我怎样才能解决这个问题呢?
您需要将submit()调用移动到FB的回调函数定义中。API调用,即将其向上移动一行,使其位于右括号/大括号之前。现在它被放置的方式是,它在FB之前被调用。API调用已经完成,因此在返回电子邮件地址并将其分配给表单字段之前。记住FB。API是一个异步调用,它不会阻塞执行,直到它完成。
相关文章:
- Froogaloop Vimeo API--Can't在就绪事件之外调用API方法
- 问题将 Javascript 数组发送到带有 List
参数的 Web API 方法 - 无法让简单的 SoundCloud javascript api 方法正常工作
- JSON 对象未传递给 Web API 方法
- 使用 Postman 和 Javascript 在 API 方法中查找特定字段
- 使用 ajax 调用异步 Web api 方法
- 在非 IE 浏览器中访问 API 方法
- ColdFusion 10 CFCHART,如何通过JavaScript API方法传递动态变量
- HTTP GET位于客户端调用的api方法内部
- 调用自定义API方法的功能
- 如何使旧的Twitter API方法在ASP.Net网站上工作
- 美元的资源;如何封装API方法
- Youtube API -在IFrame播放器API方法中删除右下角的Youtube徽标
- 要求的事情.当试图从API方法获取用户时,用户是未定义的
- 不能在FB中声明任何东西.api方法
- 获取详细的用户管理的页面在facebook使用fb.api方法
- 不能使用XMLHttpRequest访问Web API方法,但使用Restclient Plugin等
- 如何在javascript中使用RoutePrefix获取Web API方法的有效url
- 如何从呈现程序进程调用Electron API方法
- 从ASP下载文件.. NET Web API方法使用AngularJS