2010-09-13 10 views
2

J'ai un problème pour implémenter la méthode isUser: receivingUpdatesFor: de MGTwitterEngine afin de vérifier si un utilisateur suit un autre utilisateur sur Twitter. Voici mon code:MGTwitterEngine - isUser: receivingUpdatesFor: renvoie toujours l'erreur HTTP 400?

//Here is how I call the method (isRequestIdentifier is an NSString declare in the .h) 
isRequestIdentifier = [[twitterEngine isUser:user1 receivingUpdatesFor:user2] retain]; 
NSLog(@"user1 : %@ - user2 : %@", user1, user2); 
NSLog(@"isRequestIdentifier : %@",isRequestIdentifier); 

#pragma mark TwitterEngineDelegate 

- (void) requestSucceeded: (NSString *) requestIdentifier { 
    if ([requestIdentifier isEqualToString:isRequestIdentifier]) { 
     NSLog(@"Request isRequestIdentifier %@ succeeded", requestIdentifier); 
    } 
} 

- (void) requestFailed: (NSString *) requestIdentifier withError: (NSError *) error { 
    if ([requestIdentifier isEqualToString:isRequestIdentifier]) { 
     NSLog(@"Request isRequestIdentifier : %@ failed with error: %@", requestIdentifier, error); 
    } 
} 

Il semble fonctionner, mais je demande ont toujours échoué, même si je suis sûr que le user1 suit le user2, voici le message du journal:

Demande isRequestIdentifier: E8284E63 -A5B0-4C18-A3DB-B4F0A5E6048E a échoué avec erreur: Erreur Domaine = Code HTTP = 400 "L'opération n'a pas pu aboutir. (Erreur HTTP 400.)"

Une idée de ce que je fais de mal?

Merci pour votre aide.

Répondre

2

Je l'ai compris :)!

Aller à MGTwitterEngine.m et rechercher la déclaration de:

  • (NSString *) isUser: (NSString *) username1 receivingUpdatesFor: (NSString *) username2

Vous trouverez ce Code:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0]; 
[params setObject:username1 forKey:@"user_a"]; 
[params setObject:username2 forKey:@"user_b"]; 

NSString *path = [NSString stringWithFormat:@"friendships/exists.%@", API_FORMAT]; 

qui cause le problème, becasue la fonction « suivant » qui prend le chemin n'écrit pas les params dans l'URL, et c'est la raison pour laquelle nous étions obtenir cette erreur 400 Bad Request.

Le «rapide et sale solution que je l'ai fait est de commenter toutes ces lignes et ajouter:

NSString *path = [NSString stringWithFormat:@"friendships/exists.%@?user_a=%@&user_b=%@", API_FORMAT, username1, username2]; 

Works impeccable!

+0

@ zhwtz12345 Cette requête particulière retourne dans le rappel de délégué: - (void) miscInfoReceived: (NSArray *) status forRequest: (NSString *) requestIdentifier; – almosnow

+0

J'ai fait les changements que vous avez suggérés mais cette ligne: NSLog (@ "% @", [twitterOBJ isUser: @ "nomutilisateur1" receivingUpdatesFor: @ "nomutilisateur2"]); imprime toujours des choses comme: "8D9EEC59-485F-437C-8E33-CC48AC370E05" –

+0

Encore une fois donne (erreur HTTP 400.) et (erreur HTTP 403.) –