如何使用Graph API将视频上传到Facebook时指定标签

时间:2012-04-06 01:07:05

标签: objective-c facebook-graph-api

我可以通过Objective-C使用最新的Graph API将视频成功上传到Facebook。但是,我还要标记视频中的某些Facebook用户。我无法让它发挥作用。

FB documentation表示有一个“tag”字段接受包含id和name字段的对象数组。但是,如果我尝试以此格式传递JSON字符串,则视频上载失败,没有任何有用的错误消息。我是否正确传递了标签数据?

这是失败的示例代码。当我从params中删除@“tags”字段时,代码成功,或者将tagStr设置为空数组,即@“[]”。

NSString *tagStr = @"[{\"id\":\"<id-removed>\", \"name\":\"<name-removed>\"}]";
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                              data, @"video.mov",
                              @"video/quicktime", @"contentType",
                              titleStr, @"title",
                              descStr, @"description",
                              tagStr, @"tags",          // specifying tags fails
                              nil];

[facebook requestWithGraphPath:@"me/videos"
                     andParams:params
                 andHttpMethod:@"POST"
                   andDelegate:self];

1 个答案:

答案 0 :(得分:1)

你的Params词典应该是这样的,

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   videoData, @"video.mov",
                                   @"video/quicktime", @"contentType",
                                   @"Birthday wishes", @"title",
                                   @"via Birthday wishes", @"description",facebook.accessToken,@"access_token",
                                   nil];

视频发布后,您可以在 - (void)请求中标记朋友:(FBRequest *)请求didLoad:(id)结果如

[APP.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/tags/%@?access_token=%@", photoID, [ar_tID objectAtIndex:i], APP.facebook.accessToken]andParams:nilandHttpMethod:@"POST" andDelegate:self];