0

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

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

这是一串逗号分隔的 Facebook 用户 ID(根据 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'

有人知道如何格式化这些参数吗?我找不到任何文档或清晰的示例。提前致谢。

作为旁注,有谁知道如何从应用程序发布并标记人而不是地点?我觉得每种方法都意味着您至少必须先标记一个地方。

谢谢!

4

1 回答 1

2

根据我的经验,您不能同时在帖子中标记朋友。但是,您可以在帖子成功后标记朋友。发布后,您应该从 completionHandler 块中获取帖子 ID。这是我现在正在使用的代码。

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 
}];
于 2013-09-27T02:21:13.917 回答