如何跳过Facebook iOS单点登录的权限对话框?

时间:2012-03-27 03:07:58

标签: ios facebook ipad single-sign-on

我有一个iPad应用程序,要求用户登录Facebook。我已经使用Facebook提供的iOS SDK实现了这一点,但我对回归用户的打击很大。以下是他们采取的步骤:

  • 用户首次加载我们的应用。
  • 他们点击“登录”,如果安装了它,会将其重定向到Facebook iPad应用程序。
  • 他们看到了一个他们接受的权限对话框。
  • 他们退出我们的应用并关闭它。
  • 稍后,他们会重新打开我们的应用程序。
  • 他们点击我们的应用程序中的“登录”。
  • 将他们带到Facebook iPad应用程序,该应用程序提供如下所示的空权限对话框,因为他们已经授权我们并授予我们完全权限。

问题在于我们看到了混乱的用户,因为号召性用语('Okay')被隐藏在标题栏的左上角,而且消息传递不清楚。在我们的测试中,Flipboard应用程序在这种情况下会短暂显示对话框,但会自动关闭并将控制权返回给调用应用程序。这也是我们希望在我们的案例中发生的事情,但目前还不清楚如何实现这一目标。到目前为止,我尝试过的一些事情尚未解决问题:

  • https://github.com/facebook/facebook-ios-sdk
  • 更新至最新的Facebook iOS SDK
  • 将nil或空数组传递给[Facebook授权]
  • 搜索任何相关线索的文档(和网站)
  • 检查SDK代码以查找任何未记录的参数

是否有人建议如何在重复访问时跳过此重复授权对话框?任何帮助非常感谢。

iPad screenshot

3 个答案:

答案 0 :(得分:1)

一旦我们能够获得应用商店批准和发布,我们发现使用Apple软件包ID更新SSO详细信息会使对话框按预期运行。

答案 1 :(得分:0)

这在Facebook's iOS API documentation中得到了证明,特别是“修改应用程序委托头文件”的第4步

if (![facebook isSessionValid]) {
    [facebook authorize:nil]; // this is what displays the facebook dialog
}

isSessionValid检查是否存在有效的Cookie,如果存在,则不需要再次authorize

修改

我发现,如果您的用户长时间不使用您的应用,那么您的Cookie无论如何都会过期。在那种情况下,我不确定我们能做些什么,因为FB的(重新)认证依赖于那个对话框。

答案 2 :(得分:0)

您是否按照步骤6中所述存储会话信息并阅读IOS Tutorial的步骤3?

如果是这样,如果您必须开始扩展令牌: https://developers.facebook.com/docs/mobile/ios/build/#extend_token

现在,offline_access已被弃用,这是相对较新的。