我正在使用Facebook Api来获取用户的姓名,电子邮件和城市。
一切正常但填充inputs
。我的script
填充输入,但仅在我重新加载页面时。我需要在按login button
后填写输入,而不刷新页面。这可能吗?
这是我的剧本:
<script>
function getUserData() {
FB.api('/me?fields=first_name,last_name,email,location', function(response) {
var imie = document.getElementById('basketInputName');
if(!imie || !imie.value)
imie.value = response.first_name;
var nazwisko = document.getElementById('basketInputLastName');
if(!nazwisko || !nazwisko.value)
nazwisko.value = response.last_name;
var email = document.getElementById('basketInputMail');
if(!email || !email.value)
email.value = response.email;
var location = document.getElementById('inputCityTo');
if(!location || !location.value)
location.value = response.location.name;
});
}
window.fbAsyncInit = function() {
FB.init({
appId : '134824563795810',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10'
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
//user is authorized
document.getElementById('loginBtn').style.display = 'none';
getUserData();
} else {
document.getElementById('logoutBtn').style.display = 'none';
}
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function myFacebookLogin() {
FB.login(function(){
getUserData();
}, {scope: 'user_location'});
}
</script>
这是例如input
的第一个名字:
<div class="form-group">
<label for="basketInputName">Imię</label>
<input type="text" name="client[name]" class="form-control" id="basketInputName" required>
</div>
有什么建议我做错了吗?
修改
这是我的登录/退出按钮:
<fb:login-button id="loginBtn" show-faces="false" height="200" width="200" max-rows="1" scope="email,user_location,public_profile" onclick="myFacebookLogin();">Kontynuuj przez facebook</fb:login-button>
<fb:login-button id="logoutBtn" autologoutlink="true"></fb:login-button>
答案 0 :(得分:0)
与luschn
一样,如果我使用fb login button
,则不会调用myFacebookLogin()
函数。所以我做了什么,在我的按钮中将onclick
更改为onlogin
解决了问题。