2013-03-07 58 views
3

我正在與Facebook API第一次工作。從我找到的文檔中我們可以獲取如下名稱 console.log(response.name); 但我怎樣才能也可以獲取電子郵件和fbid?如何獲得用戶電子郵件和fd編號使用facebook登錄使用圖形api

感謝, Enamul

<?php ?> 
<div id="fb-root"></div> 
<script> 
    // Additional JS functions here 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'f', // App ID 
     channelUrl : '//localhost/practices/phpTest/fblogin/login.php/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 
    FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     // connected 
    } else if (response.status === 'not_authorized') { 
     // not_authorized 
     login(); 
    } else { 
     // not_logged_in 
     login(); 
    } 
    }); 

    // Additional init code here 

    }; 

    function login() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      // connected 
      testAPI(); 
     } else { 
      // cancelled 
     } 
    }); 
    } 

    function testAPI() { 

    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 

     console.log('Good to see you, ' + response.name + '.'); 
    }); 
    } 

    // 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)); 
</script> 
<?php ?> 
+0

你是否穿過?如果不是,則評論__如果是,則接受答案。 – ThePCWizard 2013-03-07 13:32:12

+0

@ThePCWizard抱歉遲到接受。我離開了一段時間,所以我無法測試它。 – user1559230 2013-03-08 05:47:24

回答

4

訪問名稱相同的方式。即

response.emailresponse.id

但獲取電子郵件地址,您必須擁有訪問它的權限。

scope="email"添加到您的FB登錄按鈕。

[編輯]

function login() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      // connected 
     testAPI(); 
     } else { 
      // cancelled 
     } 
    }, { scope: 'email' }); 
    } 

function testAPI() { 

    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 

     console.log('Good to see you, ' + response.name + '.' + ' Email: ' + response.email + ' Facebook ID: ' + response.id); 
    }); 
} 

這裏有一個很好的教程初學者:http://www.loginworks.com/technical-blogs/404-working-with-facebook-javascript-sdk

+0

我發佈了我的代碼。請告訴我,我應該在我的代碼中做出什麼改變。 – user1559230 2013-03-07 12:00:45

+1

檢查更新的答案。 – ThePCWizard 2013-03-07 12:04:35

+1

嘗試了登錄示例: ,響應僅包含名稱和ID,沒有電子郵件。哪裏不對? – Dave 2017-01-10 23:55:00

4

除了添加範圍=「電子郵件」的按鈕,你需要指定要返回的字段。

<fb:login-button scope="public_profile, email" onlogin="checkLoginState();" data-auto-logout-link="true" data-size="large"> 

function testAPI() { 
    FB.api('/me', {fields: 'name, email'}, function(response) { 
     console.log(response); 
     console.log(response.email); 
    }); 
} 

對於完整的代碼結構看一看的facebook documentation

相關問題