没有朋友列表的FBWebDialog

时间:2013-05-29 13:07:43

标签: iphone ios objective-c facebook

在我的应用中,我想使用FBWebDialog向多个用户发送“应用请求”。但我不想从FBWebDialog附带的列表中选择那些用户。我只想将朋友从FBfriendpicker viewcontroller传递给FBWebDialog并从那里发送给他们。可能吗?我怎样才能做到这一点?感谢。

2 个答案:

答案 0 :(得分:2)

您需要设置“to”参数,如下面引用的两个页面中所述,它将禁用下拉朋友列表并仅发送给一个目标受众

https://developers.facebook.com/docs/howtos/send-requests-using-ios-sdk/

  

发送目标请求

     

您可以向下过滤建议的列表或定位一个用户。要过滤   在列表中你可以传递一个参数,包含一个的建议   逗号分隔的朋友列表将在选择中显示。达到目标   一个收件人,将该用户的ID传递给参数

还记录了请求对话框页面

  

到用户ID或用户名,或以逗号分隔的列表。这些可能   或者可能不是发件人的朋友。如果这是由应用程序指定的,   发件人将无法选择收件人。如果没有,发件人   将看到一个多朋友选择器,并将能够选择一个最大值   50名获奖者。 (由于URL长度限制,最大数量   当使用非iframe对话框时,IE7 / IE8中的收件人数为25。)

facebook的游戏部分的另一个文档与图片 https://developers.facebook.com/docs/tutorials/ios-sdk-games/requests/

NSMutableDictionary* params =   [NSMutableDictionary dictionaryWithObjectsAndKeys:
    // 2. Optionally provide a 'to' param to direct the request at
    @"286400088", @"to", // Ali
    nil];

答案 1 :(得分:0)

从3.2升级到3.5.1部分允许我使用无摩擦的朋友请求。该过程适用于:

NSMutableDictionary* params =   [NSMutableDictionary dictionaryWithObjectsAndKeys:nil];

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

[FBWebDialogs presentRequestsDialogModallyWithSession:[FBSession activeSession]
                                                  message:[NSString stringWithFormat:@"I just posted an action - give me some points!"]
                                                    title:@"Get Points from your friends"
                                               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.");
                                                          }
                                                      }}
friendCache:friendCache];

这有助于您升级Facebook sdk https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.2-to-3.5/