gpt4 book ai didi

ios - openSessionWithAllowLoginUI 几乎总是返回 NO

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:18 25 4
gpt4 key购买 nike

我最近完成了将最新的 FB iOS SDK (3.0) 集成到我的应用程序 (iOS 5) 中。我已经逐步完成了教程,根据 FB 提供的文档,一切似乎都已准备就绪。我遇到的问题是,每当我检查是否需要通过以下方式进行身份验证时:

if(![自己打开SessionWithAllowLoginUI:NO]){ [自行打开SessionWithAllowLoginUI:YES];

...经常(并且几乎总是在 [FBSession.activeSession 关闭] 之后)openSessionWithAllowLoginUI 返回 NO,我必须转换到身份验证对话框才能获得有效 session 。根据我的理解,[FBSession.activeSession close] 不应破坏 SDK 重新使用旧 token 并允许我重新创建 session 而无需显示登录对话框的能力。

请注意,在我的应用程序中,我不需要在应用程序生命周期内进行 Facebook 身份验证。因此,我倾向于按需建立 session ,并在我完成时使用 [FBSession.activeSession close] 关闭它们,而不是仅在 applicationWillTerminate 中使用 [FBSession.activeSession close]。

有没有人对我可能做错的事情或尝试的事情有任何建议?

谢谢。

最佳答案

我有同样的问题,我无法弄清楚......选择器 openSessionWithAllowLoginUI: 无法为用户检索保存的 session ,我总是必须向用户显示登录 UI。

希望尽快解决!

更新 --------------

我的理解是:当用户登录 Facebook 时,FB SDK 会调用 2 次 sessionStateChanged:

第一个用于 FBSessionStateOpen,第二个用于 FBSessionStateClosed。所以,如果你检查你的 AppDelegate.m 文件,你会发现这样的代码:

case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;

closeAndClearTokenInformation 的调用:清除所有 token 信息,因此每次应用程序运行时,它都会向用户询问登录 UI。

现在的问题是:为什么 Facebook 首先发送 FBSessionStateOpen 然后立即发送 FBSessionStateClosed ??

关于ios - openSessionWithAllowLoginUI 几乎总是返回 NO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com