0

嗨我已經在我的反應原生應用程序中實現了Facebook登錄。我沒有使用sdk附帶的標準按鈕。一切工作正常登錄是成功的。但現在我不知道如何從Facebook用戶檔案中提取數據,例如姓名,電子郵件。從fbsdk提取數據本機

下面是我的代碼鍵

<TouchableHighlight onPress={() => { this._fbAuth() }}> 
          <Image source={require('../images/facebook-logo.png')} style={styles.facebook}></Image> 
         </TouchableHighlight> 
+0

https://developers.facebook.com/docs/facebook-登錄/權限/概述 我不知道你需要什麼數據。但是您將獲得電子郵件地址訪問,出生日期,姓名等基本權限。Facebook不允許獲取所有用戶數據。 –

回答

1

您需要使用的accessTokenLoginManager一起函數來獲取令牌時登錄成功

_fbAuth() { 
     LoginManager.logInWithReadPermissions(['public_profile']).then(function (result) { 
      if (result.isCancelled) { 
       console.log('Login was Cancelled'); 
      } else { 

         const { navigate } = this.props.navigation; 

       // 
       console.log('Login Successful' + result.grantedPermissions.toString()); 



      } 
     }, function (error) { 
      console.log('An error has occured' + error); 
     }) 
    } 

代碼。在接收到令牌後,我們可以使用此令牌來使用facebook的圖表API檢索登錄用戶的數據。

考慮下面的代碼:

import { LoginManager, AccessToken } from 'react-native-fbsdk'; 
 

 
async _fbAuth() { 
 
    let { isCancelled } = await LoginManager.logInWithReadPermissions(['public_profile','user_posts']); 
 

 
    if (!isCancelled) { 
 
     let data = await AccessToken.getCurrentAccessToken(); 
 
     let token = data.accessToken.toString(); 
 
     await afterLoginComplete(token); 
 
    } 
 
    else { 
 
     console.log('Login incomplete'); 
 
    } 
 

 
} 
 

 
const afterLoginComplete = async (token) => { 
 
    const response = await fetch(
 
     `https://graph.facebook.com/me?fields=id,name,first_name,last_name,gender,picture,cover&access_token=${token}`); 
 
    let result = await response.json(); 
 

 
    // use this result as per the requirement 
 
};

你可以學習如何使用Facebook的圖形API從here