2009-08-24 6 views
2

J'ai trouvé comment envoyer du texte sur le mur de l'utilisateur, avec l'API FBConnect, sur iphone. J'ai même trouvé comment mettre une image déjà sur Internet:FBConnect: envoyer des images sur le mur de quelqu'un

FBFeedDialog* dialog = [[[FBFeedDialog alloc] init] autorelease]; 
dialog.delegate = self; 
dialog.templateBundleId = 12345; 
dialog.templateData = @"{\"image\":[{\"src\":\"http://sample.png\",\"href\":\"http://sample.com\"}] }"; 
[dialog show]; 

(voir http://wiki.developers.facebook.com/index.php/Facebook_Connect_for_iPhone)

Mais je ne peux pas comprendre comment télécharger un UIImage de mon iphone à la mur de l'utilisateur avec FB Api. Dois-je, d'abord, télécharger l'image sur un site Web, puis mettre son URL dans le templateData? N'y a-t-il pas une solution plus simple?

Merci.

Martin

Répondre

1

Utilisez la fonction ci-dessous pour télécharger l'image, passez le UIImage comme paramètre, il fonctionnera.

- (void)uploadPhoto:(UIImage *)uploadImage 
{ 
    NSMutableDictionary *args = [[[NSMutableDictionary alloc] init] autorelease]; 
    [args setObject:uploadImage forKey:@"image"]; // 'images' is an array of 'UIImage' objects 
    [args setObject:@"4865751097970555873" forKey:@"aid"];// this should be album id 
    uploadPhotoRequest = [FBRequest requestWithDelegate:self]; 
    [uploadPhotoRequest call:@"photos.upload" params:args]; 

    NSLog(@"uploading image is successful"); 
} 
+0

Merci beaucoup pour le code. Vous avez donc deux étapes: d'abord le téléchargement, puis le templateData. Y at-il, sur le serveur Facebook, des endroits où vous pouvez mettre ce type de données? – Martin

+0

Le commentaire indique "images dans un tableau ...", mais il n'y a pas de variable "images" dans l'exemple de code. Pouvez-vous s'il vous plaît modifier? – Olie

0

[[FBRequest requestWithDelegate: auto] appel: @ "facebook.photos.upload" params: params dataParam: (NSData *) img;

et passer les paramètres à zéro. il va télécharger l'image à l'album par défaut

Questions connexes