Fb 请求对话框错误地返回 nil - IOS Facebook
Posted
技术标签:
【中文标题】Fb 请求对话框错误地返回 nil - IOS Facebook【英文标题】:Fb request dialog returns nil incorrectly - IOS Facebook 【发布时间】:2013-05-28 10:46:06 【问题描述】:感谢阅读!
我正在尝试创建一个 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 并且不包含任何内容。之后我收到日志消息“用户取消请求”。
为什么我没有得到任何回报?我需要这个的主要原因是我需要知道请求发送给了哪些朋友。
感谢您的帮助!
【问题讨论】:
【参考方案1】:似乎您将一个空会话传递给presentRequestsDialogModallyWithSession
改用FBSession.activeSession
并检查您是否有足够的权限来运行请求(如果没有,您会收到另一个不同的错误)
【讨论】:
【参考方案2】:我认为您没有打开会话。请尝试使用它打开会话。
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)
];
【讨论】:
以上是关于Fb 请求对话框错误地返回 nil - IOS Facebook的主要内容,如果未能解决你的问题,请参考以下文章
FB App 在 ios 6 上使用 presentShareDialogWithOpenGraphAction 显示后立即关闭
iOS Facebook api,apprequests发送但没有接收?
(iOS Swift) 从 Core Data 获取记录返回致命错误或 nil
(Spotify iOS SDK) renewSession 总是返回 nil session
为啥我在尝试在 iOS Swift 中向服务器发出 post 请求时收到此错误:在展开 Optional 值时意外发现 nil?