2012-12-10 79 views
0

我使用this wrapper尝试与一个标题用户的墙上张贴图片:发布在iOS版的Facebook墙上

我已经得到它张贴到相册用下面的代码,但我无法弄清楚如何将其发布到用户的墙上。

UIImage *img = [logo getMyLogoImage];   
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"This is a caption! Do you know this logo?",@"message",img,@"picture",nil]; 
[[SPFacebookClient_MyApp sharedClient] requestWithParams:params completionHandler:^(BOOL success, id result, NSError *error){}]; 

我可以看到,使用常规的Facebook SDK,我可以称之为张贴到墙上:

[FBRequestConnection startWithGraphPath:@"me/Photos" 
      parameters:params 
      HTTPMethod:@"POST" 
      completionHandler:^(FBRequestConnection *connection, id result, NSError *error){[self showAlert:@"Photo Post" result:result error:error];}]; 

我真的很喜欢弄清楚如何使与包装虽然发生,因为它使管理会话和一般设置变得更加简单和清晰。任何人都可以解释我将不得不改变或添加使这项工作?

+0

要发布到用户的墙,你应该缀以字符串'的请求@“https://graph.facebook.com/me/feed”' – Stas

+0

请指定哪些许可,您已经设置好的? –

+0

Aprit,我已经要求“offline_access”和“publish_stream”作为权限。 – GoldenJoe

回答

0

请更新您的代码,如下所示,并尝试。

UIImage *img = [logo getMyLogoImage]; 
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"This is a caption! Do you know this logo?",@"message",img,@"picture",nil];  
[[SPExampleFacebookClient sharedClient] requestWithName:@"stream.publish" params:params method:@"POST" completionHandler:^(BOOL success, id result, NSError *error){ 
    NSLog(@"Error - %@", error); 
}]; 
+0

我在日志中出现错误:“无法使用GET上传文件”。调试,我可以看到,在图书馆内,[Facebook requestWithParams]总是强制GET。 – GoldenJoe

+0

我用新的代码更新了我的答案,你可以试试吗? –

+0

感谢您的更新。我试了一下,并得到一个新的错误。完成处理程序中的结果是一个HTML页面,其中显示“抱歉,出错了”。难道这个包装器使用旧的SDK组件?奇怪它会读得好。 – GoldenJoe