如何在startWithGraphPath Facebook iOS中标记好友

我似乎无法让我的post使用iOS的Facebook SDK工作。 我正在使用“startWithGraphPath:参数:HTTPMethod:completionHandler:”函数。 我可以得到消息,地点和图片的工作,但我似乎无法标记朋友。 我曾尝试设置NSDictionary键和对象

parameters[@"tags"] = self.friendsIDs; 

这是一个用逗号分隔的Facebook用户名string(根据Facebook参考页面: https : //developers.facebook.com/docs/reference/api/user/#posts )。 然而这总是出现:

 com.facebook.sdk:ParsedJSONResponseKey={ body = { error = { code = 100; message = "(#100) param tags must be an array."; type = OAuthException; 

那么我把它们放在一个数组中,它仍然不起作用。 事实上,然后我得到一个不同的错误:

-[__NSArrayM length]: unrecognized selector sent to instance 0x1228abc0 2013-09-26 16:47:36.917 DrinkingGamePicker[27558:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM length]: unrecognized selector sent to instance 0x1228abc0发送到实例0x1228abc0'

任何人都知道如何格式化这些参数? 我找不到任何文件或清楚的例子。 提前致谢。

作为一个侧面说明,有没有人知道如何从应用程序发布和标记人,但不是一个地方? 我觉得每个方法都意味着你必须至less先标记一个地方。

谢谢!

根据我的经验,你不能同时贴上post的朋友。 但是,您可以在post成功后标记好友。 发布后,您应该从completionHandler块中获取postID。 这里是我现在使用的代码。

 NSString *postId = //result from posting completionHandler; NSString *path = [NSString stringWithFormat:@"%@/tags",postId]; NSMutableArray *tags = [NSMutableArray array]; for (NSString *friendId in self.tagFriends) { [tags addObject:[NSDictionary dictionaryWithObject:friendId forKey:@"tag_uid"]]; } NSMutableDictionary *param = [NSMutableDictionary dictionary]; [param setObject:JSONStringWithObject(tags) forKey:@"tags"]; //JSONStringWithObject() is just a function develop by myself using NSJSONSerialization to wrap NSArray into JSON format NSString [FBRequestConnection startWithGraphPath:path parameters:param HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { //check error here }];