2010-11-09 9 views
2

Je travaille sur l'intégration de Facebook avec mon application iPhone/iOS et je veux savoir si je comprends la nature de la procédure de connexion correctement. Avec l'ancien SDK Facebook («Facebook iPhone SDK»), lorsque nous devions demander l'autorisation d'authentification d'un utilisateur, UIWebView s'affichait avec une invite de connexion. Avec le nouveau SDK («SDK Facebook pour iOS»), le SDK utilise la fonction de changement rapide d'application d'Apple pour placer temporairement l'application en mode d'arrière-plan, puis charger l'application iOS d'iOS ou Safari pour s'authentifier. Est-ce fondamentalement l'essentiel?Authentification Facebook avec le nouveau 'Facebook SDK pour iOS' vs. 'Facebook iPhone SDK'

J'ai expérimenté l'authentification de mon application via la nouvelle technique du SDK et en raison de la nature de mon application, elle ne peut tout simplement pas prendre en charge l'arrière-plan. Cela signifie-t-il que je dois utiliser l'ancien SDK pour lancer une authentification basée sur UIWebView? Je pense que cette mise en œuvre est beaucoup plus propre de toute façon. Vais-je rencontrer des inconvénients majeurs de le faire?

Répondre

1

Je ne crois pas que ce soit le cas.

Le SDK Facebook que je connais, disponible à https://github.com/facebook/facebook-ios-sdk ne fait rien comme vous l'avez décrit. Est-ce le SDK que vous utilisez? Je crois que la dernière mise à jour majeure de ce SDK à partir du "vieux" SDK de Facebook consistait à ajouter un support pour l'authentification de type OAuth. Avec ce changement, ils ont brisé la compatibilité du code, donc les applications ont été obligées d'apporter des modifications pour intégrer le dernier SDK. Lorsque vous appelez 'authorize' dans ce SDK, vous transmettez l'identifiant de l'application, les autorisations souhaitées et un délégué de rappel pour les notifications d'erreurs ou de succès (connexion, connexion, déconnexion). Vous pouvez également définir un jeton d'accès que vous avez peut-être conservé depuis une session précédente. Facebook valide ce jeton d'accès, et s'il n'existe pas ou est invalide, il présente une boîte de dialogue de connexion modale. Je crois que le contenu de cette boîte de dialogue est une page Web. Le SDK authentifie l'utilisateur à l'aide de OAuth et rend le jeton d'authentification disponible pour la persistance entre les sessions.

À aucun moment, l'application n'est sortie pour exécuter l'application Facebook ou Safari. Je suis curieux - qu'est-ce qui vous a amené à croire que c'était le cas? (Ou, peut-être il y a un autre SDK là-bas, je suis pas au courant de?)

+0

Hey Tom, Merci pour l'info. J'ai passé environ une heure à chercher la source exacte de mes informations. On dirait que ça n'existe plus? Je l'ai eu il y a seulement un jour ou deux. "Le nouveau mécanisme repose sur le changement rapide d'application d'iOS 4. Il fonctionne comme suit: Si l'application fonctionne dans iOS version 4 ou supérieure ..." –

+0

listé sous quelque chose comme 'autorisation unique' soit sur github ou quelque part dans la documentation de facebook. –

+0

Fondamentalement, mon but est de simplement donner à un utilisateur de partager son expérience avec mon application en autorisant l'application à faire un post sur le mur facebook d'un utilisateur. Assez simple non? –

1

Jetez un oeil sur cette page: https://github.com/facebook/facebook-ios-sdk

Et regardez Single Sign-On. Cela décrit le scénario ci-dessus avec une commutation rapide.

+3

Si vous rencontrez des problèmes avec le signe en ne revenant pas à votre application, il est probable que vous le manquiez dans votre ** application délégué **: (BOOL) application: (UIApplication *) application handleOpenURL: (NSURL *) url –

2

Vérifiez cette question et ma réponse: Iphone facebook connect example calls safari. I don't want to use safari

Vous pouvez faire utiliser le UIWebView toujours. Facebook essaye de faire en sorte que l'utilisateur ne doive se connecter qu'une fois par appareil (via l'application Facebook ou Safari) mais je n'ai pas aimé ce flux (surtout sur l'iPad). Bien que je préfèrerais ne pas me moquer du code Facebook, j'ai trouvé que commenter quelques lignes pour être un moyen rapide de récupérer l'ancien comportement.