2013-08-23 90 views
3

我剛剛開始將Facebook整合到目前正在處理的網站上。到目前爲止,我所擁有的是用戶可以登錄並在登錄後獲得他們的信息。我正在努力理解的是,如何在初始登錄html頁面之後調用FB.api()調用?我知道JavaScript SDK自動處理訪問令牌和東西,但我不確定如何使用它。到目前爲止,我所擁有的是:如何在使用Javascript SDK進行初始登錄後使用Facebook API調用

 

    window.fbAsyncInit = function() 
     { 
       FB.init({ 
        appId  : 'API_KEY', // Set YOUR APP ID 
        channelUrl : 'DOMAIN', // Channel File 
        status  : true, // check login status 
        cookie  : true, // enable cookies to allow the server to access the session 
        xfbml  : true // parse XFBML 
       }); 

      FB.Event.subscribe('auth.authResponseChange', function(response) 
      { 
       console.log("Authorization Change"); 
       if (response.status === 'connected') 
       { 

        console.log("Connected to FaceBook"); 
        //SUCCESS 
       }  
       else if (response.status === 'not_authorized') 
       { 
        console.log("Logged into Facebook but not us"); 
        FacebookLogin(); 
        //FAILED 
       } 
       else 
       { 
        console.log("Logged out of both"); 
        FacebookLogin(); 
        //UNKNOWN ERROR 
       } 
      }); 
     }; 
     function FacebookLogin() 
     { 
      FB.login(function(response) 
      { 
       if (response.authResponse) 
       { 
        window.location = "test.php"; 
       } 
       else 
       { 
        console.log('User cancelled login or did not fully authorize.'); 
       } 
      },{scope: 'email,user_birthday,read_friendlists'}); 
     } 

     // 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_US/all.js"; 
      ref.parentNode.insertBefore(js, ref); 
     }(document)); 

所有這些代碼都位於登錄html頁面頂部的腳本標記內。我要做的是一旦用戶登錄並進行身份驗證,我將引導他們到另一個頁面,我將使用FB.api()函數獲取他們的信息並填寫他們的註冊表單。任何建議或提示?

+0

什麼錯誤? FB.ui()'的代碼? – glautrou

+0

我試過的是在用戶登錄後重定向頁面,然後在重定向頁面中,我嘗試使用FB.api()獲取信息,因爲我認爲它是由Facebook Javascript SDK管理的? – derekdt

+0

@derekdt任何運氣搞清楚這一點?我現在自己也遇到同樣的問題 – bks

回答

0

您可以使用下面的函數來獲取用戶信息的用戶成功和顯示登錄任何DOM元素後

function fqlQuery(){ 
      FB.api('/me', function(response) { 
       var query = FB.Data.query('select name, hometown_location, sex, pic_square from user where uid={0}', response.id); 
       query.wait(function(rows) { 

        document.getElementById('name').innerHTML = 
        'Your name: ' + rows[0].name + "<br />" + 
        '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />"; 
       }); 
      }); 
     } 

更多的例子可以發現here

+0

因此,如果我想在初始登錄頁面之後的任何頁面訪問此人的信息,我將不得不加載並初始化並加載SDK,然後使用FQL查詢獲取信息? – derekdt

相關問題