2010-09-06 5 views

Répondre

3

Je ne l'ai jamais posté directement au Facebook Graphique api (bien que je l'ai utilisé leur API qui tire vers le haut des boîtes de dialogue UIWebView et gère l'entreprise d'affichage réelle pour toi). J'ai utilisé le diable de ASIHTTPRequest, cependant.

NSString *reqStr = [NSString stringWithFormat:@"https://graph.facebook.com/me/feed?message=%@&access_token=%@", messageString, accessTokenString]; 
ASIHTTPRequest *req = [ASIHTTPRequest requestWithUrl:[NSURL urlWithString:reqStr]]; 
req.delegate = self; 
req.userInfo = [NSDictionary dictionaryWithObject:@"graphRequest" forKey:@"type"]; 
req.requestMethod = @"POST"; 
[req startAsynchronous]; 

Couple de choses. Je démontre l'utilisation du champ .userInfo parce que c'est tellement utile. Cette propriété prend n'importe quel NSDictionary contenant tous les objets que vous souhaitez inclure, et vous pouvez y accéder plus tard dans la méthode -request: didFinish. Vous pouvez lui passer un pointeur vers l'image UIImageView que vous voulez charger avec l'UIImage que vous téléchargez, par exemple. Plus souvent, d'après mon expérience, si vous avez plus d'une requête dans le même viewController, vous n'avez qu'à définir un objet différent pour votre clé @"type" dans ce dictionnaire, et vous avez un moyen facile de les différencier plus tard. Deuxièmement, vous pourriez bien demander: «Dois-je faire quelque chose de spécial parce que c'est https? Dans mon expérience, vous n'avez absolument rien, ASIHTTPRequest est assez intelligent pour gérer tout cela dans les coulisses.

Si vous avez besoin de créer des champs de publication, plutôt que d'envoyer simplement des données sur la chaîne de requête, vous utilisez un objet ASIFormPostData plutôt que ASIHTTPRequest, mais il se comporte plus ou moins de la même manière.

EDIT, PLUSIEURS ANNÉES PLUS TARD: ASIHttpRequest est maintenant obsolète par son développeur, qui recommande de passer à un autre paquet en cours de développement. Les gens semblent aimer AFNetworking.

Questions connexes