J'ai quelques-unes des questions au sujet de la nouvelle FBSession réautorisation (reauthorizeWithPermissions: Comportement: completionHandler :) à facebook sdk 3.0:Facebook iOS SDK 3.0 réautorisation
Une fois que quelqu'un est connecté via facebook sur mon application, sur certaines pages que je voudrais ré-authentifier l'utilisateur avec ses informations d'identification facebook. Cela permet de s'assurer que la personne qui consulte la page et la personne qui a ouvert une session sont les mêmes. Les autorisations de réauthentification restent les mêmes que celles de connexion. Tout ce dont j'ai besoin, c'est d'une nouvelle confirmation du mot de passe de l'utilisateur pour assurer ce cas.
D'où je me sers du reauthorisationWithPermissions: pour ce faire. Et je suis en train le comportement FBSessionLoginBehaviorForcingWebView pour faire en sorte que l'utilisateur est obligé d'entrer dans son/ses lettres de créance. Cependant, cela ne fonctionne pas du tout. Il apparaît tout simplement un WebView vide pendant quelques secondes, puis disparaît ... À ce stade, il appelle le cependant, le bloc FBSesstionStateHandler à l'état mis à FBSessionStateOpen, ne parvient pas à appeler le FBSessionReauthorizeResultHandler défini dans le (completionHandler :).
Cependant, si je simplement définir le comportement par défaut (FBSessionLoginBehaviorWithFallbackToWebView) il fonctionne très bien en passant la demande et-vient entre app/safari facebook et termine l'appel en appelant correctement le completionHandler. Cependant, avec le comportement par défaut, il ne force pas l'utilisateur à entrer à nouveau son mot de passe.
Je suis vraiment confus, et les sdk docs sur le web ne sont pas très utiles pour mon cas. Est-ce que quelqu'un pourrait me conseiller sur ce que je fais de mal ... ou si son temps est un bug connu dans le SDK? Si oui, comment puis-je répondre à mes exigences?
-(void) reauthThroughFacebook {
if (!self.facebookSession.isOpen && self.facebookSession.state == FBSessionStateCreatedTokenLoaded) {
[self.facebookSession openWithBehavior: FBSessionLoginBehaviorWithNoFallbackToWebView
completionHandler: self.stateHandler];
}
if (self.facebookSession.isOpen) {
[self.facebookSession reauthorizeWithPermissions: self.userPermissions
behavior: FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession *session, NSError* error){
if (self.facebookSession == session) {
[self completedReauthWithSuccess:(error == nil) error:error];
}
}];
} else {
[self completedReauthWithSuccess:NO error:[NSError errorWithDomain: @"No active session found."
code: FBErrorInvalid userInfo: nil]];
}
}
En outre, une fois l'affichage Web reauth apparaît correctement, comment puis-je faire en sorte que est générée automatiquement l'adresse e-mail de l'utilisateur et bloquer le formulaire utilisateur changeant? Puis-je accéder à la vue Web dans le sdk facebook pour définir ces propriétés?
Enfin, ce qui se passe à l'accès et la date d'expiration jeton si la re-auth a lieu avec les mêmes autorisations que connexion ??
Merci d'avance,
Je me demande la même chose; il semble que dans sdk 3.1 reauthorizeWithPermissions: Comportement: completionHandler: méthode est également dépréciée. je suis – Kevlar