Recuperer informations de bases utilisateur facebook.
Bonjour, je suis actuellement en train déssayer dàntegrer un login facebook dans une appliucation iphone. Je dois pour ca recoder un bouton facebook (et non utiliser celui donne directement par le SDK)
Dans le IBACTION de mon bouton j ai donc fait la chose suivante :
La connexion fonctionne bien cependant au moment de recuperer les informations de l utilisateur
La fonction me retourne une erreur 400 et m affiche les message suivant :
Je comprends donc que l aconnexion est mal etablie ici, pourtant elle fonctionne correctement sans ce bout de code, je ne comprends donc pas pourquoi elle serait refusee, ai-je rate quelquechose ?
Merci par avance.
Dans le IBACTION de mon bouton j ai donc fait la chose suivante :
<br />
-(IBAction)fbButtonClickHandler:(id)sender {<br />
mainDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];<br />
if (mainDelegate.fbSession.isOpen) {<br />
[mainDelegate.fbSession closeAndClearTokenInformation]; // FB delog<br />
}<br />
else {<br />
if (mainDelegate.fbSession.state != FBSessionStateCreated) {<br />
mainDelegate.fbSession = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"email", @"publish_actions", @"user_birthday",nil]];<br />
}<br />
// loggin on facebook<br />
[mainDelegate.fbSession openWithCompletionHandler:^(FBSession *session,<br />
FBSessionState status,<br />
NSError *error) {<br />
[fbButton setTitle:[self updateFbButtonLabel] forState:UIControlStateNormal];<br />
// reading the documentation i'm trying this to get the FBGraphUser<br />
if(session.isOpen) {<br />
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error) {<br />
if (!error) {<br />
NSString *userInfo = @"";<br />
// Example: typed access (name)<br />
// - no special permissions required<br />
userInfo = [userInfo<br />
stringByAppendingString:<br />
[NSString stringWithFormat:@"Name: %@\n\n",<br />
user.name]];<br />
// Example: typed access, (birthday)<br />
// - requires user_birthday permission<br />
userInfo = [userInfo<br />
stringByAppendingString:<br />
[NSString stringWithFormat:@"Birthday: %@\n\n",<br />
user.birthday]];<br />
// Display the user info<br />
NSLog(@"%@", userInfo);<br />
}<br />
NSLog(@" error: %@" , error);<br />
}];<br />
}<br />
}<br />
}];<br />
}<br />
}<br />
La connexion fonctionne bien cependant au moment de recuperer les informations de l utilisateur
<br />
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error)<br />
La fonction me retourne une erreur 400 et m affiche les message suivant :
<br />
Error: HTTP status code: 400<br />
FBSDKLog: Response <#1111> <Error>:<br />
The operation couldn't be completed. (com.facebook.sdk error 5.)<br />
(null)<br />
error: Error Domain=com.facebook.sdk Code=5 "The operation couldn't be completed. <br />
(com.facebook.sdk error 5.)" UserInfo=0x925f760 {com.facebook.sdk:ParsedJSONResponseKey=<br />
<CFBasicHash 0x9367d60 [0xe41b38]>{type = mutable dict, count = 2,<br />
entries =><br />
1 : <CFString 0x1b9410 [0xe41b38]>{contents = "code"} = <CFNumber 0x9366d60 [0xe41b38]><br />
{value = +400, type = kCFNumberSInt32Type}<br />
2 : <CFString 0x1b9340 [0xe41b38]>{contents = "body"} = <CFBasicHash 0x93670b0 <br />
[0xe41b38]>{type = mutable dict, count = 1,<br />
entries =><br />
11 : <CFString 0x9367c90 [0xe41b38]>{contents = "error"} = <CFBasicHash 0x9366e80 <br />
[0xe41b38]>{type = mutable dict, count = 3,<br />
entries =><br />
2 : <CFString 0x9366850 [0xe41b38]>{contents = "type"} = <CFString 0x9367300<br />
[0xe41b38]>{contents = "OAuthException"}<br />
3 : <CFString 0x93672a0 [0xe41b38]>{contents = "message"} = <CFString 0x9367200 <br />
[0xe41b38]>{contents = "An active access token must be used to query information about <br />
the current user."}<br />
6 : <CFString 0x9367c80 [0xe41b38]>{contents = "code"} = 2500<br />
Je comprends donc que l aconnexion est mal etablie ici, pourtant elle fonctionne correctement sans ce bout de code, je ne comprends donc pas pourquoi elle serait refusee, ai-je rate quelquechose ?
Merci par avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
"An active access token must be used to query information about the current user"
Merci pour ta reponse !
C est par la que je creuse quand je conclus que ma connexion est mal faite, cependant, je verifie avec le isOpen quélle est bien active, d'ou mon incomprehension !
Il suffit donc juste de la setter a session ici :
Cela fonctionne desormais correctement, je laisse ma reponse pour les futurs dev qui auront le probleme.
Merci !
/clap.gif' class='bbc_emoticon' alt=' ' />
LE probleme est que c est documente nulle part ! Mais a force de tenter, c ést passe. Merci pour tes reponses !
A plous