Facebook对话框登录问题



我使用Facebook对话框以这种方式在墙上发布

[facebook dialog:@"feed" andParams:params andDelegate:self];

若用户在对话框之前并没有登录,对话框中将显示登录窗口。这是可以的,但当用户按下"登录"对话框时,对话框将被关闭,用户必须再次调用对话框,并在墙上张贴我的消息。强制用户调用对话框两次是很奇怪的,所以有人能帮我解决这个问题吗?

修复此问题的最简单方法是将params存储在ivar中。然后,当FBConnect使用fbDidLogin呼叫您的代理人时,您可以自动重新发出dialog:andParams:andDelegate呼叫。

更长、更正确的解决方案是,您需要将授权和发布步骤分开。您可以将fb.accessToken和到期日期存储在NSUserDefaults中,然后在第一次尝试访问FBConnect时调用它们。如果过期日期已过,那么您可以调用authorize:delegate以获取新的访问密钥。fbLogin完成后,您将对话框发布给用户以继续。

或者,您也可以不重新发明轮子,并查看ShareKithttp://getsharekit.com/以获得更完整的解决方案。

也可以尝试该链接中给出的代码和答案,而不是facebook给出的"HACBOOK示例"代码。。。Facebook API对话框在第二次和之后显示错误。别忘了在视图控制器的顶部提供appId。。

我发现这个问题的最佳解决方案是在(void)对话框:(FBDialog*)对话框didFailWithError:(NSError*)错误中再次调用[facebook dialog:@"feed"andParams:params andDelegate:self]。它是在您登录后调用的,但对话框被取消。

最新更新