【问题标题】:Disconnecting Facebook from app on iOS6?在 iOS 6 上断开 Facebook 与应用的连接?
【发布时间】:2012-12-05 10:10:14
【问题描述】:

我使用的是最新的 Facebook iOS SDK,3.1.1。我想让用户选择从 Facebook“断开”我们的应用程序。我在打电话:

[[FBSession activeSession] closeAndClearTokenInformation];

这似乎工作正常,但下次我打电话时

[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler];

它立即给了我一个令牌,而不要求用户再次登录。我希望它再次要求用户进行身份验证。如果设备上没有设置 Facebook 帐户,它可以正常工作,因为它会打开 Web 浏览器,告诉用户他们已经验证了应用程序并显示“确定”按钮。但如果设置好了,它只是默默地再次获取令牌,因此用户“断开”应用程序没有任何效果。

还有其他人有这个问题吗,你是如何处理的?

【问题讨论】:

    标签: ios facebook ios6 facebook-ios-sdk


    【解决方案1】:

    它不再询问,因为 iOS SDK 已为 Facebook SDK 提供了有效的访问令牌。这就是 Apple 设计他们的 Facebook(和 Twitter)框架的方式。你对此无能为力。个人觉得很棒。用户只需在接受应用后告知手机即可。

    另请注意,缓存的令牌可能已过期。 Facebook SDK 目前还不能完全处理 iOS SDK 给它一个过期令牌的情况。

    如果您想测试,则可以删除设备上的 Facebook 帐户并重新添加。那应该清除缓存的令牌。

    【讨论】:

    • 谢谢,这与我们在应用程序中设置的方式相反,但我想它确实有意义。
    • 出于兴趣,你为什么关心它总是问?为什么重要?
    • 抱歉,mattjgalloway,我没有看到你的评论。原因是用户在刚开始使用该应用程序时可能会犹豫是否授予该应用程序的权限。也许他们尝试了一些事情,触发 Facebook 行动,但随后拒绝访问。后来,随着他们更多地使用该应用并开始信任它,也许他们会允许它访问他们的 Facebook 帐户,但它永远不会再询问。
    • 没关系 :-)。嗯,我以为您在询问他们接受的情况,然后在您的应用程序中断开连接,然后再次重新连接,在这种情况下,它不会显示允许的提示。我认为您的评论中的另一个问题不应该是这种情况。我认为如果您选择“不允许”然后重新请求许可,提示确实会再次出现。
    • 如果他们在你的应用中“断开连接”,iOS 仍然会记住他们允许的,所以当应用下次请求权限时,它会立即获得(不显示提示)。但是如果用户拒绝了应用程序的权限,系统会自动拒绝任何后续的权限请求(可能一段时间后超时,不确定)。
    【解决方案2】:

    使用:

    - (void)openWithBehavior:(FBSessionLoginBehavior)behavior completionHandler:(FBSessionStateHandler)handler;
    

    使用 FBSessionLoginBehaviorForcingWebView 作为行为解决了我的问题。它会打开登录模式框并忘记用户 cookie。

    【讨论】:

    • 谢谢,但不幸的是,这意味着您需要完全跳过内置的 Facebook 帐户,我想避免这种情况。与此同时,我们只是决定省略“注销”按钮。如果您愿意,您可以随时从系统设置中进行操作。
    猜你喜欢
    • 1970-01-01
    • 2012-10-09
    • 2013-05-09
    • 2012-05-18
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    相关资源
    最近更新 更多