为啥 Facebook iOS 的 feed 发布对话框在登录后消失?
Posted
技术标签:
【中文标题】为啥 Facebook iOS 的 feed 发布对话框在登录后消失?【英文标题】:Why does Facebook iOS dialog for feed publish disappear after login?为什么 Facebook iOS 的 feed 发布对话框在登录后消失? 【发布时间】:2012-03-26 21:16:08 【问题描述】:我正在尝试使用 Facebook ios“提要”对话框调用来允许我的应用用户在他们的 Facebook 墙上分享内容。当未安装 facebook 应用程序时,它会尝试让他们在应用程序内进行身份验证(可能使用 Web 视图)。问题是,一旦他们进行身份验证,这个对话框就会消失。我期待网络视图返回到“提要”共享视图。
我如何检测到他们已通过身份验证,以便我可以重新打开提要对话框?
我已将 fbDidLogin 添加到我的应用程序委托中,但它没有被调用。 (我不确定这是否通常会被调用,但我读到有几个人推荐这个。)
SBJSON *jsonWriter = [SBJSON new];
// The action links to be shown with the post in the feed
NSArray* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:
@"More Videos",@"name",@"http://www.example.com/",@"link", nil], nil];
NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Test Caption", @"caption",
@"Test Description", @"description",
@"https://s3.amazonaws.com/example/images/test.png",
@"source",
self.video.blogLink, @"link",
@"01234567890123", @"app_id",
actionLinksStr, @"actions",
nil];
[delegate facebook].sessionDelegate = delegate;
[[delegate facebook] dialog:@"feed" andParams:params andDelegate:self];
【问题讨论】:
我前段时间在玩 Facebook sdk 时也遇到了这个问题,并且可以找到解决方案。 【参考方案1】:事实证明,问题与那些报告对话框立即消失的问题相同。 Facebook SDK 中存在处理错误 -999、with the solution described in this comment on SO 的错误。
当我开始听 FBDialogDelegate 的方法时,我终于意识到我遇到了同样的问题(尽管表现方式略有不同):
- (void)dialog:(FBDialog*)dialog didFailWithError:(NSError *)error
错误描述引用了上面提到的-999错误,引导我找到答案。幸运的是,签入 github 的代码完美无缺。我只需要将它拉入 SDK 代码库并重新编译 .a lib 文件,然后将其包含到我的项目中。
【讨论】:
【参考方案2】:您是否在视图控制器中实现了 facebook 协议 FBSession ? 要检测该用户是否已通过身份验证,您必须调用 isSessionValid:
if (![[self.fbAppDelegate facebook] isSessionValid])
NSArray *permissions = [[NSArray alloc] initWithObjects:@"publish_stream",@"create_event",@"offline_access", nil];
[[self.fbAppDelegate facebook] authorize:permissions];
并授权inApp:
[self authorizeWithFBAppAuth:NO safariAuth:NO];
【讨论】:
感谢您的回复。即使您没有尝试授权应用代表用户行事,也就是说,您只是想允许用户根据需要在他们的墙上分享,所有这一切都是真的吗?以上是关于为啥 Facebook iOS 的 feed 发布对话框在登录后消失?的主要内容,如果未能解决你的问题,请参考以下文章
与 Facebook Graph API /user-id/feed (iOS) 一起使用的 viewController
在 ios xcode 4.3(故事板)中弹出 facebook feed 对话框(用于墙贴)
如何在 iOS 中使用 Facebook SDK 避免“已达到 Feed 操作请求限制”错误? [关闭]
Unity Facebook SDK FB.Feed 未发布