我正在尝试在我的网站上实现Facebook连接以填充输入字段。
但是,尽管我的Facebook应用程序询问我是否可以访问该电子邮件地址,但我无法获取该电子邮件地址或姓氏和名字。
这是我的剧本:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '######', // App ID
status : true, // check login status
xfbml : true,
cookie : true,
version : 'v2.4' // Version
});
};
function Login()
{
FB.login(function(response) {
if(response.authResponse)
{
getUserInfo();
}else{
console.log('User cancelled login or did not fully authorize.');
}
},{scope: 'public_profile,email'});
}
function getUserInfo()
{
FB.api('/me', function(response) {
document.getElementById("name").value = response.name;
document.getElementById("first_name").value = response.first_name;
document.getElementById("last_name").value = response.last_name;
document.getElementById("email").value = response.email;
FB.api('/me/picture?type=normal', function(response) {
var str ="<br/><b>Pic</b> : <img src='"+response.data.url+"'/>";
str +="<input type='button' value='Logout' onclick='Logout();'/>";
document.getElementById("status").innerHTML=str;
});
});
}
function Logout()
{
FB.logout(function(){document.location.reload();});
}
// Load the SDK asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_EN/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
有人可以帮我这个吗?
答案 0 :(得分:1)
您应该明确请求您需要的字段:
FB.api('/me?fields=email,...')
请参阅Using the Graph API doc
中的Choosing Fields
一章
您还可以使用工具和工具中的Graph API Explorer
来试用您的请求。 FB Developer网站的支持部分