使用ReactNative进行Facebook登录不返回预期数据

时间:2017-12-20 10:22:24

标签: facebook react-native facebook-javascript-sdk

当我使用FBSDK包装器登录我的用户时,我使用:

LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(result => {

  // find user information here if accepted

});

我确实在回复中找到了电子邮件地址,也找到了用户的photoURL。但是,我真的需要单独的名字和姓氏。我只得到一个名为displayName的属性,它在一个字符串中包含名字和姓氏。

我不想做一些hacky事情,比如在字符串的第一个空格处拆分以获得名字,因为它不会一直工作(用户可能有一个中间名?)。

Facebook确实指定您获得一个名为first_name&的字段last_name根据the official docs返回。

任何人都知道我如何能够可靠地获取用户的名字和姓氏?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要询问您想要获得的字段,否则您只会获得默认字段。例如,您可以通过此API调用获取first_name和last_name字段:

const infoRequest = new GraphRequest('/me', {
    parameters: {
        fields: {
            string: 'first_name,last_name'
        }
    }
}, (error, result) => {
    if (error) {
        console.log('Error fetching data: ' + error.toString());
    } else {
        console.log('Success fetching data: ' + result.toString());
    }
});
new GraphRequestManager().addRequest(infoRequest).start();