Question

Dans mon jeu, j'ai la possibilité pour les utilisateurs de publier un succès sur leur mur.S'ils sont connectés, c'est-à-dire que leur jeton est toujours actif, cela fonctionne bien.Cependant, s'ils ont besoin de renouveler leur jeton, l'application se ferme et la page d'authentification Facebook se charge pendant une seconde avant de revenir à l'application (il leur suffit de cliquer sur OK sur la page d'authentification s'ils se sont déconnectés activement, sinon cela se produit automatiquement).

Le problème est que si cela se produit, lorsque le jeu revient, la requête échoue.Mais comme ils sont maintenant connectés, s'ils doivent appuyer une deuxième fois sur le bouton «partager sur le mur», cela fonctionne très bien.Le message d'erreur généré par l'échec de la demande:

    DIDLOGIN
2012-02-21 12:01:33.502[18153:15803] Response received
2012-02-21 12:01:33.502[18153:15803] Request did load raw response
2012-02-21 12:01:33.502[18153:15803] Request failed, error: Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x9992010 {error=<CFBasicHash 0x99785e0 [0x2093b38]>{type = mutable dict, count = 3,
entries =>
    2 : <CFString 0x9963370 [0x2093b38]>{contents = "type"} = <CFString 0x99952a0 [0x2093b38]>{contents = "OAuthException"}
    3 : <CFString 0x99631e0 [0x2093b38]>{contents = "message"} = <CFString 0x997e5b0 [0x2093b38]>{contents = "An active access token must be used to query information about the current user."}
    6 : <CFString 0x998c370 [0x2093b38]>{contents = "code"} = 2500
}
}

Je ne sais pas pourquoi j'obtiens une OAuthException alors que je viens de l'autoriser avec succès?

Merci pour toute aide!

Était-ce utile?

La solution 2

Eh bien, j'ai trouvé le problème.Au moins je pense que je l'ai trouvé, comme cela fonctionne maintenant, j'espère juste que je n'ai pas introduit une autre erreur dans le processus.En gros, mon code de connexion ressemblait à ceci:

    - (void)postAchievement:(NSString *)message withPicture:(NSString *)pictureURL {
    //Set post to TRUE so the delegate posts when the method returns and configure the message. 
    DLog(@"Achievement message: %@", message);
    self.postAchievement = TRUE;
    self.achievementMessage = message;
    self.wallPostPicURL = pictureURL;
    [self fbLogin];
[facebook requestWithGraphPath:@"me" andDelegate:self];
}

    // Save the user's credentials and expiration date
- (void)fbDidLogin {
    DLog(@"DIDLOGIN");
    self.isLoggedIn = TRUE;
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize];
}

fbDidLogin est une méthode déléguée appelée lorsque l'utilisateur s'est connecté. La ligne [facebook requestWithGraphPath:@"me" andDelegate:self]; était à l'origine du problème.Je l'ai déplacé à la fin de la méthode fbDidLogin et maintenant il semble fonctionner parfaitement.

Autres conseils

lorsque vous définissez le dictionnaire de paramètres que vous envoyez sur le facebook .. passez le jeton d'accès également ,, comme ceci

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"someText",  
                               @"message",
                               [fb accessToken], 
                               @"access_token",nil];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top