ionic4 facebook 登录捕获 "user" 作为错误取消
ionic4 facebook login catches "user" cancelled as error
在将我的问题标记为重复之前,请注意我已经看到一个类似的问题但没有得到正确回答,该解决方案对提出问题的人不起作用并且对我也不起作用。
我正在尝试实现离子本机 fb 登录,并在执行此操作后
我已检查用户是否已登录,但用户未登录。请问谁有解决办法
this.faceBook.login(['public_profile', 'user_friends', 'email'])
.then((response: FacebookLoginResponse) => {
this.presentToast("response");
const facebookCredential = firebase.auth.FacebookAuthProvider.credential(
response.authResponse.accessToken
);
firebase.auth().signInWithCredential(facebookCredential)
.then(result => {
var user = result.user;
resolve(user);
})
.catch(err => {
reject(err);
});
})
.catch(err => {
this.presentToast(err);
});
吐司消息是"User cancelled"。我不知道为什么会这样。有人可以帮我吗
试试这个,因为如果你已经登录,它会抛出错误。你需要先检查用户是否登录这里是示例
this.fb.getLoginStatus().then((res) => {
if (res.status === 'connected') {
//console.log('connected', res);
this.fb.api("/" + res.authResponse.userID + "/?fields=id,email,name,picture,first_name,last_name,gender", ["public_profile"]).then((data) => {
//console.log('data', data.email);
})
//
} else {
this.fb.login([]).then((userData) => {
//console.log('note connected', userData);
this.fb.api("/" + userData.authResponse.userID + "/?fields=id,email,name,picture,first_name,last_name,gender", ["public_profile"]).then((data) => {
//console.log('data', data.email);
})
}).catch((error) => {
// FB Log in error
this.util.showErrorAlert('Something went Wrong while login');
});
}
});
对我有用的是降级 cordova 插件。
我在项目中有这些版本:
"@ionic-native/facebook": "^4.1.0",
"cordova-plugin-facebook4": "^4.2.1",
我删除了 ^ 以防止不需要的更新,并将我的 cordova-plugin-facebook4 降级到 4.1.0。
"@ionic-native/facebook": "4.1.0",
"cordova-plugin-facebook4": "4.1.0",
如果它不起作用,请尝试查看 cordova-plugin-facebook4 github 发布页面并检查更新日志。也许这会引导您朝着正确的方向前进。
在将我的问题标记为重复之前,请注意我已经看到一个类似的问题但没有得到正确回答,该解决方案对提出问题的人不起作用并且对我也不起作用。
我正在尝试实现离子本机 fb 登录,并在执行此操作后
我已检查用户是否已登录,但用户未登录。请问谁有解决办法
this.faceBook.login(['public_profile', 'user_friends', 'email'])
.then((response: FacebookLoginResponse) => {
this.presentToast("response");
const facebookCredential = firebase.auth.FacebookAuthProvider.credential(
response.authResponse.accessToken
);
firebase.auth().signInWithCredential(facebookCredential)
.then(result => {
var user = result.user;
resolve(user);
})
.catch(err => {
reject(err);
});
})
.catch(err => {
this.presentToast(err);
});
吐司消息是"User cancelled"。我不知道为什么会这样。有人可以帮我吗
试试这个,因为如果你已经登录,它会抛出错误。你需要先检查用户是否登录这里是示例
this.fb.getLoginStatus().then((res) => {
if (res.status === 'connected') {
//console.log('connected', res);
this.fb.api("/" + res.authResponse.userID + "/?fields=id,email,name,picture,first_name,last_name,gender", ["public_profile"]).then((data) => {
//console.log('data', data.email);
})
//
} else {
this.fb.login([]).then((userData) => {
//console.log('note connected', userData);
this.fb.api("/" + userData.authResponse.userID + "/?fields=id,email,name,picture,first_name,last_name,gender", ["public_profile"]).then((data) => {
//console.log('data', data.email);
})
}).catch((error) => {
// FB Log in error
this.util.showErrorAlert('Something went Wrong while login');
});
}
});
对我有用的是降级 cordova 插件。 我在项目中有这些版本:
"@ionic-native/facebook": "^4.1.0",
"cordova-plugin-facebook4": "^4.2.1",
我删除了 ^ 以防止不需要的更新,并将我的 cordova-plugin-facebook4 降级到 4.1.0。
"@ionic-native/facebook": "4.1.0",
"cordova-plugin-facebook4": "4.1.0",
如果它不起作用,请尝试查看 cordova-plugin-facebook4 github 发布页面并检查更新日志。也许这会引导您朝着正确的方向前进。