2017-08-31 15 views
0

私はFacebookのApiを使用して、ユーザーの姓と名字、メールアドレスと都市名を取得しています。 すべて正常に動作しますが、埋め込みinputsです。私のscript入力を埋めるが、私はページをリロードするときだけです。 login buttonを押した後、ページを更新せずに入力を入力する必要があります。それは可能ですか?JavaScriptで入力を動的に入力する

これは私のスクリプトです:

<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> 

任意の提案ですか?

EDIT:

は、これは私のログイン/ログアウトボタンです:

<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

ログインボタンのコードを教えてください。 – UncleDave

+1

ログインボタンまたはfb.login ...を使用してください。myFacebookLoginが呼び出される可能性はほとんどなく、ログイン後にコールバックを使用していません。 – luschn

+0

これを読んでください:http://www.devils-heaven.com/facebook-javascript-sdk-login/ – luschn

答えて

0

luschnのように私はfb login buttonを使用している場合は、その後、myFacebookLogin()関数が呼び出されていないと述べました。だから私がやったことは、onclickonloginに変更することで問題が解決しました。

関連する問題