android - 从 fbsdk React Native 获取数据

标签 android facebook react-native react-native-fbsdk

嗨,我已经在我的 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/

相关文章:

android - 在Android的显示触摸中,颜色线是什么意思

ios - 无法使用 Parse + Facebook 身份验证

facebook - 用于查找公共(public)事件的 FQL 查询

react-native - React Native 异步存储 : where are information storage at? 电话或应用程序?

android - 在 React Native 中获取设备 ID?

android - ListView 项目的删除选项总是删除第一个项目,无论单击哪个项目

java - android UI实现意见

Android TextView 在屏幕右侧被截断

android - Apache Cordova Facebook 插件(最新版本/当前主控)在初始化时使我的 Android 应用程序崩溃

Java.lang.NoClassDefFoundError : Failed resolution of: Lcom/google/firebase/FirebaseApp 错误