Я используюact-native-fbsdk 0.8.0 с React-Native 0.57.4 и получаю сообщение об ошибке:
Ошибка входа в систему: ошибка не может быть завершена.(com.facebook.sdk.login error 308).
примерно в 30% случаев.Я пробовал как с LoginButton, так и с LoginManager.
Также пробовал v0.9 и v0.7 response-native-fbsdk, с тем же результатом.
С LoginManager я пробовал LoginManager.Уловка logOut (), которую я видел, опубликованная другими (например, https://medium.com/@crysfel/error-when-login-with-facebook-sdk-react-native-c06a33078102)
У меня включена функция общего доступа к брелкам.
Я выполнил все инструкции на https://github.com/facebook/react-native-fbsdk включая настройку LSApplicationQueriesSchemes
Есть ли какие-либо предложения о том, что мне следует попробовать, если он работает нормально 2/3 раза?
Код моей кнопки входа в систему:
<LoginButton
style={[styles.button, styles.facebook]}
readPermissions={[
'public_profile',
'user_birthday',
'user_gender',
'email'
]}
onLoginFinished={(error, result) => {
if (error) {
alert('Login failed with error: ' + error.message);
} else if (result.isCancelled) {
alert('Login was cancelled');
} else {
// alert(
// 'Login was successful with permissions: ' +
// result.grantedPermissions
// );
AccessToken.getCurrentAccessToken().then(data => {
console.log(data.accessToken.toString());
this.fetchProfile().then(profile =>
this.checkOrAddUser(profile)
);
});
}
}}
onLogoutFinished={() => alert('User logged out')}
/>
Имой код LoginManager:
handleLogin = () => {
LoginManager.logInWithReadPermissions([
'public_profile',
'user_birthday',
'user_gender',
'email'
]).then(
result => {
if (result.isCancelled) {
console.log(result);
console.log('Login cancelled');
} else {
console.log(
'Login success with permissions: ' +
result.grantedPermissions.toString()
);
console.log('result is ' + result);
AccessToken.getCurrentAccessToken().then(data => {
console.log(data.accessToken.toString());
this.fetchProfile().then(profile => this.checkOrAddUser(profile));
});
}
},
function(error) {
console.log(error);
console.log('Login fail with error: ' + error.message);
LoginManager.logOut();
alert('Login failed. Try again.');
}
);
};