从Facebook检索已验证的用户信息
Retrieve authenticated user's info from Facebook
我似乎无法获得关于我的网站登录用户的任何信息,例如,在我的例子中的警报只是说"未定义"而不是名称。我不知道我做错了什么,因为我一直在遵循示例代码。
这是来自页面的<body>
。
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'blahblah',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
FB.api('/me', function(response) {
alert(response.name);
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<div class="fb-login-button" data-show-faces="true" data-width="200" data-max-rows="1"></div>
我可以登录,但是警告没有显示我的名字
在运行代码时,您需要首先检查FB.getLoginStatus
见:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
那么你的代码可能看起来像:FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
FB.api('/me', function(response) {
alert(response.name);
});
} else {
FB.login( see documentation for FB.login );
}
});
FB。api调用发生在FB之后。init调用。它没有以任何方式绑定到登录按钮所以它在你登录之前被调用。如果你想在点击时执行,你需要修改代码,让它在你登录后才尝试执行。
试着这样修改你的代码:
FB.Event.subscribe('auth.login', function(response) {
FB.api('/me', function(response) {
alert(response.name);
});
});
相关文章:
- 如何通过directline僵尸连接器发送用户信息
- 从下拉框中选择用户信息,并使用进度计数器显示数据库中的选定项目
- 在/user/后面显示用户名的用户信息
- AngularJS如何解码带有令牌和内部用户信息的jsonp响应
- 如何从JavaScript访问Django登录的用户信息
- 用于广告的 iframe ?获取用户信息
- 如何动态创建集合名称(取决于用户信息)
- 登录后的角度JWT和用户信息存储
- PhoneGap登录页面,如何保存用户信息
- 使用 PayPal API 登录:获取基本用户信息
- PHP/JavaScript 用户信息收集
- Parse JS SDK登录不使用AngularJs ui路由保持当前用户信息
- 用于确认用户信息的Javascript脚本
- Facebook Javascript SDK-访问用户信息
- 用于输入用户信息的动态PHP代码
- 如何将用户信息集成到我的Facebook应用程序中
- NodeJs-从JWT令牌中检索用户信息
- 在用户信息前插入值
- 从Facebook检索已验证的用户信息
- Mongodb获取每个文档的用户信息