Facebook的iOS SDK – 发送一个Facebook用户的应用程序请求

即时通讯使用facebook iOS SDK通过Facebook发送应用程序请求,即时通讯使用以下代码:

NSString *message = [[NSString alloc] initWithFormat:@"blah blah blah"]; NSString *data = [[NSString alloc] initWithFormat:@"blah blah blah"]; NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:message, @"message", data, @"data", nil]; [_facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/apprequests",userID] andParams:params andHttpMethod:@"POST" andDelegate:self]; [message release]; [data release]; 

这给了我以下错误:

 Error: Error Domain=facebookErrDomain Code=10000 "The operation couldn't be completed. (facebookErrDomain error 10000.)" UserInfo=0x788c5b0 {error=<CFBasicHash 0x788c080 [0x1bf53e0]>{type = mutable dict, count = 2, entries => 2 : <CFString 0x788b560 [0x1bf53e0]>{contents = "type"} = <CFString 0x788c3f0 [0x1bf53e0]>{contents = "OAuthException"} 3 : <CFString 0x788c560 [0x1bf53e0]>{contents = "message"} = <CFString 0x788c480 [0x1bf53e0]>{contents = "(#200) Invalid Request: There was a problem with the parameters of the request. Body of an error/warning message. Title is: Invalid Request"} } 

所以,有没有人用这个成功,或者你知道一个方法来发送请求到facebook用户使用facebook iOS SDK?

谢谢

您可以使用Facebook SDK轻松地发送应用程序请求

对于制作应用程序请确保执行以下步骤

1)确保你已经在你的应用程序文件夹中添加了最新的Facebook SDK

如果没有,你可以从这个链接下载。

现在你只需要在你的项目文件夹中添加FBConnect文件夹。

2)然后确保你已经注册你的iPhone应用程序作为“在Facebook上的应用程序”typesselect你的应用程序与Facebook基本应用程序设置下的集成。

如果没有,你可以在这里做。

 NSString *friendId=@"FacebookId Of Your Friends"; NSLog(@"%@",friendId); NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Hi please add me as a friend.", @"message", friendId, @"to", nil]; [appDelegate.facebook dialog:@"apprequests" andParams:params andDelegate:self]; 

请不要忘记先在您的ViewController类中使用FBdialogDelegate协议。

仅使用POST方法就无法发送不带对话框的应用程序请求。

根据文件 :

这个SDK提供了一个popupFacebook对话框的方法。 当前支持的对话框是在授权stream程中使用的login和权限对话框,以及用于将post发布到用户提要的对话框。

所以你不能通过标准对话框发布应用程序请求。 它仅适用于Web应用程序。

andyc,使用这种方式你只能发送应用程序请求。 请确保您已经将您的应用程序注册为“App On Facbook”。 问题是,为了让通知显示在桌面网站上,您的Facebook应用程序需要定义一个Canvas URL。 该URL甚至不需要有效,只需要在应用程序的设置中定义。 我已经使用testing应用程序进行了validation,确实可以解决问题。 这是由Facebook有意完成的,因为当用户点击通知时,它们被发送到桌面网站上的Canvas URL

我已经做了相同的方式,我得到了我的通知中的应用程序请求。 仍然有发送应用程序请求的问题,然后请查看下面的链接

“apprequests”对话框报告成功,收件人收到任何东西

我能够使用Ruby通过标准的POST发送请求到/ me / apprequests。 我为应用程序和“消息”参数提供了一个有效的access_token。 有可能,iOS SDK还没有对话框。

注意:用户必须先安装应用程序一次,然后才能发送通知和邀请。 所以安德鲁是正确的。 没有办法发送应用程序请求来邀请某人join新的应用程序。

试试这个代码,

 NSDictionary *params = @{@"to":text}; NSString *message = @"MESSAGE"; NSString *title = @"TITLE"; [FBWebDialogs presentRequestsDialogModallyWithSession:nil message:message title:title parameters:params handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { if (error) { UIAlertView *Alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Request not sent" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; [Alert show]; } else { if (result == FBWebDialogResultDialogNotCompleted) { // Case B: User clicked the "x" icon UIAlertView *Alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Canceled request" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; [Alert show]; NSLog(@"User canceled request."); } else { UIAlertView *Alert = [[UIAlertView alloc]initWithTitle:@"Success" message:@"Request sent successfully" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; [Alert show]; NSLog(@"Request Sent. %@", params); } } }];