尽管已授予所有权限,react-native fbsdk 仍返回未定义的电子邮件
react-native fbsdk is returning email undefined despite of all the permissions granted
我正在尝试通过 facebook sdk 获取信息,但到目前为止我只获取用户的 ID 和名称。我确实已经授予许可,但电子邮件仍然像名称和 ID 一样弹出。我几乎什么都试过了。
如有任何帮助,我们将不胜感激。
提前致谢
import React, { Component } from 'react'
import { View, TouchableOpacity, Text } from 'react-native';
import { LoginButton, AccessToken, LoginManager, GraphRequest,
GraphRequestManager } from 'react-native-fbsdk';
export default class App extends Component {
constructor() {
super();
this._fbAuth = this._fbAuth.bind(this);
}
_fbAuth = () => {
var that = this;
LoginManager.logInWithReadPermissions(['public_profile',
'email']).then(function (result) {
if (result.isCancelled) {
console.log("Login Cancel");
alert("Login Cancel")
//debugger
}
else {
console.log("Login AccessToken");
alert("Login AccessToken");
AccessToken.getCurrentAccessToken().then(
(data) => {
// alert("Get AccessToken");
//debugger
let accessToken = data.accessToken;
alert(accessToken.toString());
const responseInfoCallback = (error, result) => {
setTimeout(() => {
if (error) {
alert('Errorrrrrrrrr');
}
else {
if (result.email == undefined) {
alert("Error ,Email address is required");
// stuck at email. result.name and result.id gives correct results
}
else {
alert(result.email);
}
}
}, 200
);
}
const infoRequest = new GraphRequest(
'/me',
{
accessToken: accessToken,
prameters: {
fields: {
string: 'email , name,first_name, middle_name, last_name'
}
}
},
responseInfoCallback
);
new GraphRequestManager().addRequest(infoRequest).start();
})
}
},
function (error) {
console.log("some error occured!!", error);
})
}
render() {
return (
<View>
<TouchableOpacity onPress={() => this._fbAuth()}>
<Text> Press me</Text>
</TouchableOpacity>
</View>
);
}
}
result.email 不应未定义。
您可以直接使用 fbsdk
提供的 accessToken
。
只需获取 accessToken
,一旦您收到 accessToken
,您就可以使用 accessToken
.[= 向 facebook 图 api 发出请求以接收与该用户相关的数据16=]
https://developers.facebook.com/docs/graph-api/using-graph-api
这是完整的文档,它还包括 accessToken。它会帮助你。
我也是这样。
我正在尝试通过 facebook sdk 获取信息,但到目前为止我只获取用户的 ID 和名称。我确实已经授予许可,但电子邮件仍然像名称和 ID 一样弹出。我几乎什么都试过了。
如有任何帮助,我们将不胜感激。
提前致谢
import React, { Component } from 'react'
import { View, TouchableOpacity, Text } from 'react-native';
import { LoginButton, AccessToken, LoginManager, GraphRequest,
GraphRequestManager } from 'react-native-fbsdk';
export default class App extends Component {
constructor() {
super();
this._fbAuth = this._fbAuth.bind(this);
}
_fbAuth = () => {
var that = this;
LoginManager.logInWithReadPermissions(['public_profile',
'email']).then(function (result) {
if (result.isCancelled) {
console.log("Login Cancel");
alert("Login Cancel")
//debugger
}
else {
console.log("Login AccessToken");
alert("Login AccessToken");
AccessToken.getCurrentAccessToken().then(
(data) => {
// alert("Get AccessToken");
//debugger
let accessToken = data.accessToken;
alert(accessToken.toString());
const responseInfoCallback = (error, result) => {
setTimeout(() => {
if (error) {
alert('Errorrrrrrrrr');
}
else {
if (result.email == undefined) {
alert("Error ,Email address is required");
// stuck at email. result.name and result.id gives correct results
}
else {
alert(result.email);
}
}
}, 200
);
}
const infoRequest = new GraphRequest(
'/me',
{
accessToken: accessToken,
prameters: {
fields: {
string: 'email , name,first_name, middle_name, last_name'
}
}
},
responseInfoCallback
);
new GraphRequestManager().addRequest(infoRequest).start();
})
}
},
function (error) {
console.log("some error occured!!", error);
})
}
render() {
return (
<View>
<TouchableOpacity onPress={() => this._fbAuth()}>
<Text> Press me</Text>
</TouchableOpacity>
</View>
);
}
}
result.email 不应未定义。
您可以直接使用 fbsdk
提供的 accessToken
。
只需获取 accessToken
,一旦您收到 accessToken
,您就可以使用 accessToken
.[= 向 facebook 图 api 发出请求以接收与该用户相关的数据16=]
https://developers.facebook.com/docs/graph-api/using-graph-api
这是完整的文档,它还包括 accessToken。它会帮助你。 我也是这样。