Facebook FBWebDialogs 参数一次邀请多个朋友

Posted

技术标签:

【中文标题】Facebook FBWebDialogs 参数一次邀请多个朋友【英文标题】:Facebook FBWebDialogs params invite multiple friends at once 【发布时间】:2013-10-28 18:33:00 【问题描述】:

我在 FB 文档上找不到任何关于此的内容,但基本上我正在寻找的是能够将多个 FacebookId 添加到 FBWebDialogs 的参数中。这是我试图做的一个例子,但当然这是不对的:

NSMutableDictionary* params =   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                 facebookID1, @"to", 
                                 facebookID2, @"to",
                                 facebookID3, @"to",
                                 nil];

FBFrictionlessRecipientCache *friendCache = [[FBFrictionlessRecipientCache alloc] init];
[friendCache prefetchAndCacheForSession:nil];

[FBWebDialogs presentRequestsDialogModallyWithSession:nil
                                              message:[NSString stringWithFormat:@"هل سمعت باليومي؟ برنامج iPhone إخباري روعا"]
                                                title:nil
                                           parameters:params
                                              handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) 
                                                  if (error) 
                                                      // Case A: Error launching the dialog or sending request.
                                                      NSLog(@"Error sending request.");
                                                   else 
                                                      if (result == FBWebDialogResultDialogNotCompleted) 
                                                          // Case B: User clicked the "x" icon
                                                          NSLog(@"User canceled request.");
                                                       else 
                                                          NSLog(@"Request Sent. %@", error);
                                                      
                                                  
                                          friendCache:friendCache];

【问题讨论】:

莫拉德,题外话,但你不应该有多个具有相同文本的键。在您的示例中,您添加了三次@"to"。这行不通。如果您打印字典,则只有一个条目。 【参考方案1】:

简单,把所有这些字符串放在一个数组中,然后params中的对象就是字符串数组,key是@"to"。

【讨论】:

我怀疑这是否可行。 “to”参数只接受一个 Facebook ID。多个 ID 会导致错误。类似问题:***.com/questions/19499378/… "在 FBShareDialogParams 中,设置好友数组。工作正常。但仅在安装 Facebook 应用程序时工作。否则不起作用。"他错了,他不明白如果未安装应用程序,您不会收到通知,但您仍然会在应用程序中心的新闻提要的左下方收到应用程序请求警报。 好的.. 但是从我的应用程序中,即使设备上未安装 FB 应用程序,我是否可以使用 FBShareDialogParams 进行共享? 是的。正如我在上一条消息中所说,它确实会按照 facebook 希望您的方式向他们发送请求,即通过应用中心。 如果你想在他们的墙上发帖,你不应该使用请求对话,而是使用提要对话:***.com/questions/12122098/…【参考方案2】:

对于 FBWebDialogs 参数中的多个 ID,您应该将键设置为“to[0]”、“to[1]”、...“to[n]”:

NSMutableDictionary* params =   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                             facebookID1, @"to[0]", 
                             facebookID2, @"to[1]",
                             facebookID3, @"to[2]",
                             nil];

【讨论】:

以上是关于Facebook FBWebDialogs 参数一次邀请多个朋友的主要内容,如果未能解决你的问题,请参考以下文章

Facebook SDK iOS 邀请没有 FBWebDialogs 的用户

使用 FBWebDialogs (Facebook SDK 3.5) 成功发布后的 nil resultURL

FBWebDialogs 缺少用于验证用户的会话 Cookie

我可以通过 presentFeedDialogModallyWithSession 传递给 FBWebDialogs 的全套合法参数是啥

应用程序可以在哪些参数/代码/发布操作/权限下创建 Facebook 事件?

Facebook发布360图片