使用ReactNative登录Facebook时未返回预期数据
当我使用FBSDK包装器登录我的用户时,我使用:使用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的属性,它在一个字符串中同时包含名字和姓氏 我不想做
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请求中请求它们。谢谢!!我不知道为什么我不明白,你必须做一个新的要求。