Fb请求对话框返回nil错误- IOS Facebook



感谢阅读!

我正在尝试创建一个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是nil,不包含任何东西的响应。之后,我得到日志消息"用户取消请求"。

为什么我没有得到任何回报?我需要这个的主要原因是我需要知道请求被发送给了哪些朋友。

谢谢你的帮助!

似乎你正在传递一个空会话到presentRequestsDialogModallyWithSession

使用FBSession.activeSession代替,检查你有足够的权限来运行请求(虽然如果没有,你会得到另一个不同的错误)

我认为您没有打开会话,请尝试使用这个来打开会话。

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) {
     }];
    }

相关内容

  • 没有找到相关文章