情景: 我想将帖子分享给只有选定朋友的帖子。
遵循先决条件: 在FB好友列表中,只选择必要的好友并创建一个数组
已尝试的步骤:
试用1: 使用FBWebDialogs
并调用方法+ (void)presentFeedDialogModallyWithSession:(FBSession *)session parameters:(NSDictionary *)parameters handler:(FBWebDialogHandler)handler;
在Parameters字典中,设置“to”的值。
当收件人只有一个时,工作完全正常。如果收件人不止一个,则无法共享。
试用2: 使用FBDialogs
并致电+ (FBAppCall *)presentShareDialogWithParams:(FBShareDialogParams *)params clientState:(NSDictionary *)clientState handler:(FBDialogAppCallCompletionHandler)handler;
在FBShareDialogParams
中,设置好友数组。
工作良好。但仅在安装Facebook App时才有效。否则不起作用。
...
有些人可以帮我解决这个问题:
由于
答案 0 :(得分:2)
您必须执行以下操作:
FBShareDialogParams *p = [[FBShareDialogParams alloc] init];
p.friends = friendIdsArray;`
p.link = url;
//check if the FB app is installed and can use this method
if ([FBDialogs canPresentShareDialogWithParams:p]) {
[FBDialogs presentShareDialogWithParams:p
clientState:nil
handler:^(FBAppCall *call,
NSDictionary *results,
NSError *error) {
//do some error checking
}
// fallback to what is essentially a webview
else {
// string of comma separated Facebook Ids
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:@"1234,5678", @"to", nil];
NSString *message = @"I love Objective-C";
[FBWebDialogs presentRequestsDialogModallyWithSession:[FBSession activeSession]
message:message
title:nil
parameters:params
handler:^(FBWebDialogResult result,
NSURL *resultURL, NSError *error) {
// do some error checking
}
这就是我使用的,我发现的唯一问题是,在发出请求时,您可以包含的Facebook ID数量似乎有一些未知的限制。它有所不同,取决于我无法记录的因素。我认为FB正试图阻止人们滥用/发送垃圾邮件,这是有充分理由的......