J'ai une application Phonegap qui fonctionne sur iOS et Android. L'application dispose d'une fonction de connexion Facebook qui a fonctionné jusqu'à il y a quelques jours. Quelques-uns de nos bêta-testeurs ont signalé une erreur "L'opération n'a pas pu être terminée com.facebook.sdk error 2". Les appareils de ces testeurs varient: iPhone 5, iPhone 4s, iPod Touch, iOS 5.1.1 et iOS 6.0.
Nous utilisons le dernier SDK Facebook et un plugin de connexion Facebook Phonegap ( https://github.com/davejohnson/phonegap-plugin-facebook-connect/ ).
J'ai fait quelques recherches et trouvé les raisons suivantes pour lesquelles cette erreur pouvait se produire:
Voici le cas:
C'est un bug très incohérent (dans mon cas). Je ne peux reproduire l'erreur moi-même que si je désactive l'application dans `` Autoriser ces applications à utiliser votre compte '' (dans mon cas, l'application y est répertoriée), mais je peux facilement corriger l'erreur en autorisant à nouveau l'application. Pour le moment, la plupart des testeurs n'ont plus ce bug, mais l'erreur reste sur un iPod (où l'application n'est pas répertoriée dans 'Autoriser ces applications à utiliser votre compte').
Est-ce que quelqu'un a une idée de pourquoi j'ai ce bug?
Il s'avère: une erreur com.facebook.sdk 2 peut se traduire par un certain nombre de choses. Je recherche une sorte de table de traduction des erreurs du SDK Facebook, mais je ne parviens pas à en trouver une. Dans mon cas: L'erreur 2 de com.facebook.sdk s'est produite parce que la connexion a expiré. Les utilisateurs qui ont obtenu cette erreur avaient une mauvaise connexion réseau/WiFi.
Nous avons implémenté un système de journalisation des erreurs, qui enregistrait les détails de l'erreur chaque fois qu'une erreur se produisait lors de la connexion à Facebook. Dans ces journaux, nous pouvions voir une erreur com.facebook.sdk 2 se produire beaucoup, mais elle était résolue chaque fois que l'utilisateur tentait de se reconnecter après quelques secondes.
Cela peut être dû à mon incapacité à trouver la bonne documentation, mais j'étais et je suis toujours assez frustré par l'imprécision de ces erreurs du SDK. Il y a beaucoup de documentation sur la demande d'autorisation (ce qui peut entraîner l'erreur 2 de com.facebook.sdk), mais apparemment, cette erreur peut être causée par plus de choses. Ce serait bien de voir cela documenté quelque part également.
Cela s'est produit pour une application que j'utilisais. J'ai pu le contourner en accédant aux paramètres de mon iPhone, en sélectionnant Facebook, en appuyant sur mon nom et en cliquant sur "Supprimer le compte".
Ensuite, j'ai pu me connecter avec l'application sans problème.
Je suis retourné aux paramètres | facebook et resoumis mes informations d'identification.
L'application fonctionne toujours bien.
J'ai eu ce bug lorsque j'ai oublié de vérifier l'application iOS native (dans la page des développeurs Facebook) et de taper mon ID de bundle, qui est le même que l'identifiant de bundle dans votre projet Xcode. (y compris le nom de votre projet à la fin.) J'ai également eu le paramètre dans la page des développeurs Facebook qui a activé le mode SandBox. J'ai également désactivé le mode Sandbox pour obtenir ce travail.
Je cherchais depuis longtemps la raison de cette erreur pour autant que je travaille avec l'ancien iOS 5.0 pour une plus grande couverture des appareils. Je viens de recevoir l'erreur 400 via le débogage de la demande facebook. Donc finalement, j'ai compris que la raison était inconnue FBSessionDefaultAudience pour FBSession (testait à 6.0+ et l'api facebook native m'a donné une raison d'erreur). Et quand j'ai utilisé
+ (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions
defaultAudience:(FBSessionDefaultAudience)defaultAudience
allowLoginUI:(BOOL)allowLoginUI
completionHandler:(FBSessionStateHandler)handler;
cette erreur a finalement disparu.
ESSAYEZ D'ABORD:
Go to Settings app -> Facebook -> Your App -> Switch it off and back on again.
Cela a fonctionné pour moi et ne m'a pas obligé à supprimer le compte fb et à me reconnecter comme le suggère @ seans23. Si cela n'avait pas fonctionné, j'aurais essayé cela par la suite, mais cela a apparemment réussi à réinitialiser l'État.
Pour moi, la raison était que je testais mon application sur simulateur. Je voulais partager une photo et la boîte de dialogue ne s'est pas présentée, j'ai donc branché mon iPhone et tout s'est bien passé après!
Cette approche a fonctionné pour moi. (iOS 8)
Le contexte:
La solution:
L'idée est de supprimer les deux l'application Facebook et Messenger.
on avait le même problème. En fait, la raison est vraiment en timeout du côté FB, et surtout si ce timeout se produit alors que la page "FB login" est toujours ouverte, et que l'utilisateur clique sur "annuler". Dans ce cas, l'erreur 2 est toujours recalibrée. Donc, si vous voulez répéter et tester cette situation, cliquez simplement sur le bouton "Annuler" lors de la connexion sur FB.
Dans mon cas, j'ai créé l'application avec mon compte d'entreprise et j'ai oublié d'ajouter mon profil personnel avec un rôle de développeur. Après avoir compris que tout s'est bien passé.
À votre santé.