Je configure actuellement l'authentification Facebook pour mon application Reach Native. Après les problèmes habituels avec la configuration de react-native-fbsdk, maintenant les événements d'application Facebook fonctionnent et le LoginManager se charge.
Mon problème: après autorisation, le LoginManager me redirige vers l'application, puis me montre l'erreur:
Échec de la connexion
J'utilise l'implémentation LoginManager très standard:
const FBSDK = require('react-native-fbsdk');
const {
LoginManager,
AccessToken,
} = FBSDK;
export default class FacebookAuth extends Component {
facebook(){
LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(
function(result) {
if (result.isCancelled) {
alert('Login cancelled');
} else {
alert('Login success with permissions: '
+result.grantedPermissions.toString());
}
},
function(error) {
alert('Login fail with error: ' + error);
}
);
Avez-vous des conseils pour moi?
J'ai déjà vérifié:
Je cours: iOS 10 et 0.38.0 natif réactif.
Merci!
Erreur lors de la connexion avec le SDK Facebook - React Native
Le problème était que Facebook SDK gardait toujours le jeton de session précédente, et lorsque j'essayais de me connecter à nouveau, j'obtenais cette erreur, pour résoudre ce problème, tout ce que j'avais à faire était d'appeler la méthode logOut à partir de LoginManager.
essayez ceci avant LoginManager.logInWithReadPermissions...
LoginManager.logOut();
Après quelques heures à essayer différentes solutions, j'ai réussi à le réparer grâce aux commentaires de Cassiano Montanari et de zavadpe d'ici Installation incorrecte
Je me suis retrouvé avec cette configuration:
Fichier pod:
pod 'FBSDKCoreKit', '4.38.0'
pod 'FacebookSDK', '4.38.0'
pod 'FBSDKShareKit', '4.38.0'
pod 'FBSDKLoginKit', '4.38.0'
Vous devez vous assurer d'ajouter libRCTFBSDK.a
dans Link Binary With Libraries et pour supprimer 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk'
à partir de votre fichier pod.
Mon problème commence à se produire après la mise à niveau de FBSDK vers 4.39 et je n'ai trouvé aucun moyen de spécifier la version du SDK dans le fichier pod si j'utilise pod 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk'
.
Je pense qu'une option est d'utiliser Carthage , mais je ne l'ai pas encore essayé.
Selon le commentaire de Cassiano Montanari, la rétrogradation de 4.39.0 à 4.38.0 est la solution. Je me débattais avec tout cet après-midi et le déclassement l'a résolu immédiatement.