2011-04-06 35 views
1

我一直在拼命地使用Facebook的Graph API发布附件到当前用户的墙上的消息。我已经成功地发布了一个带有图片的POST对象,但是一旦我开始阅读附件,它就无法工作。就好像它不承认那个财产。使用iPhone SDK发布带有Facebook Graph API的附件

这里是我的代码示例:

NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys: 
          @"ATT NAME", @"name", 
          @"http://my.web.com", @"href", 
          @"ATT CAPTION", @"caption", 
          @"ATT DESC", @"description", 
          [NSDictionary dictionaryWithObjectsAndKeys: 
          @"property 1", @"PROP1", 
          @"property 2", @"PROP2", 
          nil], @"properties" 
          nil]; 

NSString *attachmentStr = [jsonWriter stringWithObject:attachment]; 

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           @"post", @"type", 
           @"MY MESSAGE", @"message", 
           attachmentStr, @"attachment", 
           nil]; 

[_facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

这将出版“我的信息”,但没有别的。我真正需要这种附件的原因是因为“属性”元素。

非常感谢!

编辑:我只是想澄清,如果我使用下面的字典为我的PARAMS而不是上面的一个,它工作得很好。我的问题是,我需要使用“附件”对象的“属性”属性进行格式化。这里是字典:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           @"post", @"type", 
           @"http://my.web.com/pic.png", @"picture", 
           @"http://my.web.com", @"link", 
           postName, @"name", 
           postCaption, @"caption", 
           postDescription, @"description", 
           postMessage, @"message", 
           nil]; 

回答

2

OK,我发现如何与我流后一起送的属性。我通过查看实际的Facebook Wall页面中的html来发现它。事实证明,对于POST对象的参数被认为是附着所以要做的唯一事情是直接添加的“属性”属性设置为POST参数是这样的:

NSDictionary *properties = [NSDictionary dictionaryWithObjectsAndKeys: 
          @"property 1", @"PROP1", 
          @"property 2", @"PROP2", 
          nil]; 

NSString *propStr = [jsonWriter stringWithObject:properties]; 


NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
          @"post", @"type", 
          @"http://my.web.com/pic.png", @"picture", 
          @"http://my.web.com", @"link", 
          postName, @"name", 
          postCaption, @"caption", 
          postDescription, @"description", 
          postMessage, @"message", 
          propStr, @"properties", 
          nil]; 

[_facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

瞧!有效!

0

要发布FEED你必须使用 “USERID /饲料”

如: [Facebook的requestWithGraphPath:@ “1231241 /饲料”
andParams:PARAMS
andHttpMethod: @“POST”
andDelegate:self];

关于属性,我不认为他们是任何属性的名称“属性”可用于饲料的API。

检查出在这里:http://developers.facebook.com/docs/reference/api/photo/

+0

嗨艾比,首先感谢您的回复。我实际上已经能够使用“我”发布。我甚至用这里描述的基本参数发布了图像:http://developers.facebook.com/docs/reference/api/post/这个页面引用了我猜测的“可选附件”是这里描述的对象:http ://developers.facebook.com/docs/guides/attachments/在这种情况下,他们确实有一个名为“properties”的属性。 – sunshineDev 2011-04-06 19:15:17

+0

我不知道这是否可能为移动设备。因为这是一个流式附件,通常支持这些网站。如果我没有错,您正在使用FBConnect SDK开发iPhone。 – insomiac 2011-04-06 19:26:02

+0

那么你想上传或附加?什么样的媒体?音乐,闪光灯还是电影? – insomiac 2011-04-06 19:26:28

相关问题