嗨,我已经在我的 React Native 应用程序中实现了 Facebook 登录。我没有使用过sdk自带的标准按钮。一切正常登录成功。但现在我不知道如何从 Facebook 用户个人资料中提取数据,即姓名、电子邮件。
下面是我的代码
_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);
})
}
按钮代码
<TouchableHighlight onPress={() => { this._fbAuth() }}>
<Image source={require('../images/facebook-logo.png')} style={styles.facebook}></Image>
</TouchableHighlight>
最佳答案
登录成功后,您需要使用AccessToken函数和LoginManager来获取 token 。收到 token 后,我们可以使用该 token 通过 facebook 的 graph 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
};
您可以从 here 学习如何使用 facebook graph API
关于android - 从 fbsdk React Native 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297139/