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