我似乎无法使用适用于 iOS 的 Facebook SDK 来运行我的帖子。我正在使用“startWithGraphPath:parameters:HTTPMethod:completionHandler:”函数。我可以获取消息、地点和图片,但我似乎无法标记 friend 。我尝试将 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]: 无法识别的选择器发送到实例 0x1228abc0
2013-09-26 16:47:36.917 DrinkingGamePicker[27558:a0b] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSArrayM 长度]:无法识别的选择器发送到实例 0x1228abc0
发送到实例 0x1228abc0'
有人知道如何格式化这些参数吗?我找不到任何文档或明确的示例。提前致谢。
作为旁注,有谁知道如何从应用程序发帖并标记人而不是地点?我觉得每种方法都意味着您至少必须先标记一个地方。
谢谢!
最佳答案
根据我的经验,您不能同时通过帖子标记好友。不过你可以在发帖成功后标记好友。发布后,您应该从 completionHandler block 中获取帖子 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
}];
关于ios - 如何在 startWithGraphPath Facebook iOS 中标记好友,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040562/