感谢阅读!
我正在尝试创建一个Facebook请求,以便用户邀请他的朋友加入该应用。
NSDictionary *params = [[NSDictionary alloc] initWithObjectsAndKeys:nil];
[FBWebDialogs
presentRequestsDialogModallyWithSession:nil
message:@"Learn how to make your iOS apps social."
title:@"Test"
parameters:params
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// Error launching the dialog or sending the request.
NSLog(@"Error sending request.");
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User clicked the "x" icon
NSLog(@"User canceled request.");
} else {
// Handle the send request callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"request"]) {
// User clicked the Cancel button
NSLog(@"User canceled request.");
} else {
// User clicked the Send button
NSString *requestID = [urlParams valueForKey:@"request"];
NSLog(@"Request ID: %@", requestID);
}
}
}
}];
}
这几乎是Facebook文档代码的干净副本。它起到了一定的作用 用户可以选择朋友,请求消失并被朋友收到并显示为通知 - 到目前为止一切正常。
问题在于,当我尝试从“处理程序”获取响应时,resultURL
为零并且不包含任何内容。之后,我收到“用户取消请求”的日志消息。
为什么我什么都不回来?我需要这个的主要原因是我需要知道请求发送给哪些朋友。
感谢您的帮助!
答案 0 :(得分:0)
好像你将一个空的空会话传递给presentRequestsDialogModallyWithSession
使用FBSession.activeSession
代替并检查您是否有足够的权限来运行请求(如果没有,您将收到另一个不同的错误)
答案 1 :(得分:0)
我认为你没有打开会话..请尝试使用它来打开会话。
if (!FBSession.activeSession.isOpen) {
// if the session is closed, then we open it here, and establish a handler for state changes
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
}];
}