Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ReactNative登录Facebook时未返回预期数据_Facebook_React Native_Facebook Javascript Sdk - Fatal编程技术网

使用ReactNative登录Facebook时未返回预期数据

使用ReactNative登录Facebook时未返回预期数据,facebook,react-native,facebook-javascript-sdk,Facebook,React Native,Facebook Javascript Sdk,当我使用FBSDK包装器登录我的用户时,我使用: LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(result => { // find user information here if accepted }); 我在回复中找到了电子邮件地址,也找到了用户的网址。然而,我真的需要名字和姓氏分开。我刚刚得到一个名为displayName的属性,它在一个字符串中同时包含名字和姓氏 我不想做

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

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

  // find user information here if accepted

});
我在回复中找到了电子邮件地址,也找到了用户的网址。然而,我真的需要名字和姓氏分开。我刚刚得到一个名为displayName的属性,它在一个字符串中同时包含名字和姓氏

我不想做一些骇人的事情,比如在字符串的第一个空格处拆分来获得名字,因为它不总是有效的——用户可能有一个中间名

Facebook确实指定您将按照返回名为first_name&last_name的字段

有人知道我如何可靠地获取用户的名字和姓氏吗


谢谢

您需要请求要获取的字段,否则将只获取默认字段。例如,您可以通过此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();

@如果我在这一点上有点慢,很抱歉,但我认为指定.logInWithReadPermissions['public_profile']会在默认情况下返回这些值?我创建了一个答案,以使其更清楚。默认情况下,您只能获得id和displayName等默认值。如果您想要更多字段,您需要在单独的api请求中请求它们。谢谢!!我不知道为什么我不明白,你必须做一个新的要求。