【问题标题】:iOS Facebook SDK startWithGraphPath:parameters post to just SOME friends programmaticallyiOS Facebook SDK startWithGraphPath:parameters 以编程方式发布给一些朋友
【发布时间】:2014-06-05 18:08:41
【问题描述】:

在 Facebook 中,您可以发布内容并与 一些 朋友分享。 如何使用 Facebook SDK 在 iOS 上以编程方式完成此操作?

我的应用程序有一个“紧急按钮”,用于发送: a) 地图上的用户位置(图片); b) 紧急文本(消息); c) 该帖子仅与用户在配置中选择的朋友共享。部分(隐私)。

- (void)sendMessage {
 //Just an Example: Send an Emergency Post with: message, picture, just to SOME friends.
 //This action may not need the User to actually press a button.

 //Privacy parameter obtained from:
 //https://developers.facebook.com/docs/graph-api/reference/v2.0/post/

 NSMutableDictionary *privacy = [[NSMutableDictionary alloc]initWithObjectsAndKeys:
                                 @"100000278095294,100000278095528", @"allow", //Friends Id separeted with commas.
                                 @"", @"deny",
                                 @"CUSTOM", @"value",         //Privacy Custom Value
                                 nil];

NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:self.emergencyText          forKey:@"message"];
[params setObject:self.locationMap            forKey:@"picture"];
[params setObject:privacy                     forKey:@"privacy"];

[FBRequestConnection startWithGraphPath:@"me/feed"
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error) {
                          if (error) {
                              NSLog(@"Error");
                              NSLog(@"Error descriptcion %@",error.description);
                          }else{
                              NSLog(@"Success");
                          }
}];

}

此代码未运行。我从 Facebook 收到错误消息。 如果我评论这一行:

// [params setObject:privacy forKey:@"privacy"];

然后它运行良好,我在 FB 中看到该帖子,但它是一个 公开 帖子。

我需要发布:消息、图片,只是给一些朋友。

欢迎使用startWithGraphPath 或使用任何其他命令的任何解决方案!

【问题讨论】:

  • 根据developers.facebook.com/docs/graph-api/reference/v2.0/user/feedprivacy应该只有3个键值,允许和拒绝。你好像还有很多人。当你应该使用文档来写作时,你正在使用文档来阅读
  • 我从官方 Facebook 文档中获取这些参数:developers.facebook.com/docs/graph-api/reference/v2.0/post 我将尝试您的提要解决方案而不是帖子。会让你知道的。
  • 我按照您的建议进行了更改,仅使用:允许、拒绝、值。但仍然无法正常工作。如果我注释行 // [params setObject:privacy forKey:@"privacy"];它工作正常,评论在那里,但每个人都可以看到它。如何为 2 或 3 个朋友设置隐私?
  • 你的代码现在是什么样子的?
  • 我已经更改了原始问题中的代码,因此它反映了我现在使用的参数,它们只是:允许、拒绝、值。还是行不通。如果我注释行 //// [params setObject:privacy forKey:@"privacy"];它工作正常,但每个人都可以看到该帖子。如果我取消注释该行,我会收到错误消息:*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSDictionaryM 长度]:无法识别的选择器已发送到实例 0x170249120”如何仅为 2 或 3 个朋友设置隐私?

标签: ios facebook facebook-graph-api


【解决方案1】:

您必须将隐私格式化为 JSON 字符串,然后将该 json 字符串分配给参数 NSMutableDictionary。

例如:

NSMutableDictionary *privacy = [[NSMutableDictionary alloc]initWithObjectsAndKeys:
                             @"100000278095294,100000278095528", @"allow", //Friends Id      separeted with commas.
                             @"", @"deny",
                             @"CUSTOM", @"value",         //Privacy Custom Value
                             nil];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:privacy
                                                   options:NSJSONWritingPrettyPrinted
                                                     error:&error];

NSString *jsonString;

if (! jsonData) {
    NSLog(@"Got an error: %@", error2);
} else {
    jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:@"to my friend"          forKey:@"message"];
[params setObject:self.locationMap               forKey:@"picture"];
[params setObject:jsonString                     forKey:@"privacy"];

【讨论】:

  • 我试过这个。该帖子是成功的,但我仍然不认为是公开帖子(它仍然是私人帖子)。还有什么问题(特别是考虑到我在发布请求上没有错误)?
猜你喜欢
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多