web-dev-qa-db-fra.com

FBSDKLoginManager avec FBSDKLoginBehaviorWeb échouant avec l'erreur "Non connecté"

Quelque chose doit avoir changé récemment sur les serveurs de Facebook concernant la façon dont ils traitent les demandes de connexion, car cela fonctionnait parfaitement et s'est soudainement arrêté.

(Nous utilisons FBSDKLoginManager.loginBehavior = FBSDKLoginBehaviorWeb en raison de la façon dont notre application est répliquée pour plusieurs marques (une base de code, de nombreuses applications) et des problèmes rencontrés lors de l'utilisation de la connexion native.)

Quoi qu'il en soit, c'est ce que nous voyons maintenant lorsque nous essayons de présenter une vue Web de connexion à l'utilisateur ( avant cela lui permet même de tenter de se connecter):

enter image description here

(Non connecté: vous n'êtes pas connecté. Veuillez vous connecter et réessayer.)

Voici le code que nous utilisons pour présenter la vue de connexion:

NSString *const publish_actions = @"publish_actions";
FBSDKLoginManager* login = [FBSDKLoginManager new];
login.loginBehavior = FBSDKLoginBehaviorWeb;
[login logInWithPublishPermissions:@[publish_actions] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    [FBSDKAccessToken setCurrentAccessToken:result.token];
    // ...
}];

Notez également que ce problème n'est pas spécifique à iOS. Notre Android voit la même chose (et encore une fois, cela fonctionnait bien jusqu'à récemment).

20
devios1

J'avais ce même bug ... semble que le problème réside dans vos paramètres de schéma d'URL info.plist: Facebook SDK: application non enregistrée en tant que schéma d'URL

Cependant, l'ajout de ces éléments conduit à l'application qui vous envoie vers l'application Facebook réelle pour l'authentification, au lieu d'afficher le mode de connexion dans votre propre application.

** METTRE À JOUR **

Désolé, j'ai parlé trop tôt ... les changements ci-dessus aideront les choses (ou changeront le flux d'utilisateurs de la manière que vous ne voulez pas), mais ce qui devait vraiment se produire (et c'est la seule chose), était simplement d'ajouter un "Plateforme iOS" (ou autre) aux paramètres de votre application dans le portail des développeurs Facebook. C'est ce qui m'a fait de toute façon. :)

enter image description here

35
andersryanc