Spo*_*ort 2 email android facebook ios react-native
我正在获得登录成功和accessToken。我做了
我试过了
LoginManager.logInWithReadPermissions([
'email',
'public_profile',
'user_likes',
])
Run Code Online (Sandbox Code Playgroud)
然后这个
LoginManager.logInWithPublishPermissions([
'publish_actions',
]).then((result) => {
if (result.isCancelled) {
console.log('Login cancelled');
} else {
AccessToken.getCurrentAccessToken().then((data) => {
const accessToken = data.accessToken;
const responseInfoCallback = (error, result) => {
if (error) {
console.log(error);
console.log('Error fetching data=', error.toString());
} else {
console.log('Success fetching data=', result.toString());
}
};
const infoRequest = new GraphRequest(
'/me',
{
accessToken,
parameters: {
fields: {
string: 'email,name,first_name,middle_name,last_name',
},
},
},
responseInfoCallback,
);
new GraphRequestManager().addRequest(infoRequest).start();
});
}
});
Run Code Online (Sandbox Code Playgroud)
“具有权限的登录成功”,“电子邮件,public_profile”和用户配置文件数据为
{ first_name: 'XXXXXX',
name: 'XXXXXX YYYYY',
last_name: 'YYYYYY',
id: '1319989423636921696328130092' }
Run Code Online (Sandbox Code Playgroud)
但是没有获取用户的电子邮件ID,这是什么问题。在应用程序中登录Facebook后如何获取电子邮件ID。
这就是我在项目中执行此操作并成功检索电子邮件的方式
LoginManager.logInWithReadPermissions(['public_profile', 'email', 'user_friends']).then(
(result) => {
if (result.isCancelled) {
console.log('Login cancelled')
} else {
AccessToken.getCurrentAccessToken().then(
(data) => {
this._fbHome();// Navigatin to next screen
}
)
}
},
(error) => {
console.log('Login fail with error: ' + error)
}
)
Run Code Online (Sandbox Code Playgroud)
然后导航到下一个屏幕后,我正在提取用户数据
const infoRequest = new GraphRequest(
'/me?fields=name,email,picture.type(large)',
null,
this._responseInfoCallback
);
new GraphRequestManager().addRequest(infoRequest).start();
_responseInfoCallback = (error, result) => {
if (error) {
alert('Error fetching data: ' + error.toString());
} else {
this.setState({ userName: result.name, userEmail: result.email ,userPic:result.picture.data.url});
AsyncStorage.setItem("UserName",this.state.userName);
AsyncStorage.setItem("Email", this.state.userEmail);
AsyncStorage.setItem("UserPic", this.state.userPic);
// SharedPreferences.setItem("UserName", this.state.userName);
// SharedPreferences.setItem("Email", this.state.userEmail);
// SharedPreferences.setItem("UserPic", this.state.userPic);
console.log("Picture"+ this.state.userPic + "Name" + this.state.userName + "Email" + this.state.userEmail);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |