iOS Facebook SDK Error Domaine com.facebook.sdk Code 2 et Code 7
Je suis le développement de l'application qui permet à l'utilisateur de login via Facebook (à l'aide de Facebook SDK). L'erreur s'affiche lorsqu'un utilisateur est déjà connecté à Facebook dans les paramètres de l'iPhone. Si ce n'est pas tout le travail correctement.
NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
[self fbSessionStateChanged:session state:state error:error];
}];
J'ai déjà essayé de définir les autorisations néant tableau - rien n'a changé.
Le journal est:
Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed.
(com.facebook.sdk error 2.)" UserInfo=0x1552c6c0
{com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginDisallowedWithoutError,
com.facebook.sdk:ErrorSessionKey=<FBSession: 0xabe8100, state: FBSessionStateClosedLoginFailed,
loginHandler: 0x0, appID: APPIDHERE, urlSchemeSuffix: ,
tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x14b8f3d0>,
expirationDate: (null), refreshDate: (null),
attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(null)>}
Parfois, l'erreur avec le Code 7 semble trop. J'ai lu presque tous les sujets liés à cette erreur.
Mon étapes ont été:
- Comparer mon id d'application .fichier plist avec FB id de lot. Ils sont les mêmes!!!
- Mon application n'est pas en mode bac à sable!
- Si je change de
[FBSession openActiveSessionWithReadPermissions:permissions
à[FBSession openActiveSessionWithPermissions:permissions
- il fonctionne. Mais c'est déconseillé.
source d'informationauteur Artem Z. | 2013-12-18
Vous devez vous connecter pour publier un commentaire.
Oui, après à toi de voir cette erreur, si vous allez dans les Paramètres, vous allez voir que le paramètre de cette app est mis sur "OFF". Mais le problème dans ce cas est que l'utilisateur n'a jamais été invité à autoriser l'accès -- c'est à dire le réglage a été DÉSACTIVÉ automatiquement lors du premier accès en temps. Si l'utilisateur a demandé, alors bien sûr, cela est compréhensible, mais ce n'est pas le cas (c'est comme si le SDK silencieusement et automatiquement pressé de Ne pas Permettre à l'utilisateur). C'est pourquoi c'est un problème.
Avant de poursuivre votre lecture, je tiens à noter qu'une fois que le paramètre est défini, vous ne pouvez pas il suffit de répéter le processus pour tester, car une fois que le paramètre est défini, il ne sera jamais à demander à l'utilisateur (même de supprimer et de réinstaller l'application n'aide pas). Pour tester ce problème, vous devez réinitialiser les autorisations en allant dans Paramètres -> Général> Reset -> Réinitialiser l'Emplacement & vie privée, avant de vous pouvez essayer de reproduire ce nouveau.
De tester, j'ai découvert que si vous avez offline_access dans les autorisations que vous demandez pour la première fois, alors il va donner à cette erreur de connexion (et de ne pas inviter l'utilisateur et de définir l'autorisation à OFF). Le SDK ne permet pas de vérifier et de vous dire que cette autorisation n'est pas autorisé; simplement, il ne parvient pas à connecter.
C'est comment j'ai eu le mien à travailler - Passer un vide autorisations tableau.
Cependant, assurez-vous d'avoir les autorisations que vous souhaitez configurer dans mon facebook page de l'application. Je n'avais besoin que d'un seul tellement j'étais bien.
J'ai le sentiment que facebook a changé de côté de serveur de code. Mon appli fonctionnait bien, et puis mon FB connexion cassé.
Je pense que ces codes sont assez vagues qu'il y aura beaucoup de choses différentes.
À la fin, j'ai trouvé que le problème était que mon app ID de l'offre n'avait pas été mis à jour lorsque j'avais préparé mon appli de l'app store. Connectez-vous à votre Facebook compte les développeurs et assurez-vous que l'ID de l'application est correcte.
Vérifier que vous avez collé dans le Facebook XML dans votre Info.plist correctement! (comme on le voit ici)
J'ai oublié d'omettre les accolades, et, au lieu de remplacer le texte interne, produisant l'erreur ce post références. Assurez-vous de remplacer le "{votre-application-id}" entièrement!