gpt4 book ai didi

iOS Facebook SDK openActiveSessionWithReadPermissions 永远不会在某些 FB 应用程序上返回

转载 作者:行者123 更新时间:2023-11-29 13:25:14 24 4
gpt4 key购买 nike

我们正在编写一个与 Facebook 集成的原生 iOS 应用程序。几个月前,我们通过 developers.facebook.com 设置了一个占位符 FB 应用程序,并通过它进行了所有测试。现在我们离发布更近了,我想我应该设置一个新的、干净的、“合适的”FB 应用程序,其中包含所有正确的应用程序描述/URL 字段/等等。

作为第一步,我将新应用设置为尽可能与旧应用相似,并创建了一个新的测试用户。旧应用程序运行良好,所以我有理由相信我们的 iOS 代码是正确的(是的,我已经在 XCode 项目中切换了应用程序 ID 等等),但是当我们运行集成的新应用程序时,我们会得到这种行为尝试向用户授权应用时:

如果安装了 iOS Facebook 应用程序并且测试用户已经登录:

  1. 调用 openActiveSessionWithReadPermissions(请求@"email"权限)后,iOS Facebook 应用启动并向用户显示我们应用的基本信息授权页面。
  2. 用户点击页面顶部的“登录”按钮。
  3. FB 应用弹出另一个空白窗口,左上角有一个“取消”按钮。
  4. 从现在开始,用户的任何操作都不会使 Facebook 将控制权交还给我们的 iOS 应用。
  5. 但随后检查测试用户的页面显示该应用程序已获得授权。

如果我从设备上卸载 Facebook 应用程序,从而强制在 Safari 中显示请求屏幕,我们会得到相同的行为,除了上面的第 (3) 点被替换为:

3) 设备警告说“Safari 无法打开页面,因为地址无效”。这是它试图打开的地址:https://m.facebook.com/dialog/permissions.request?_path=permissions.request&app_id= <*our_app_id*>&redirect_uri=fb<*our_app_id*>%3A%2F%2Fauthorize&sdk=ios&display=touch&type=user_agent&perms=email&fbconnect=1&sso=iphone-safari&from_login=1&client_id=<*our_app_id*>&refid=9

我发现此行为在 iOS 5.1 和 6.0 硬件设备以及 6.0 模拟器上是相同的。使用旧的 FB 应用程序,授权正确返回。我确定在应用程序管理页面中我只是没有正确设置一个神奇的、几乎没有记录的选项复选框,但我真的不知道如何去找出问题所在。

感谢您的任何建议!

最佳答案

由于它没有返回到您的应用程序,您可能忘记将 URL 方案添加到您的 Info.plist 中。您应该有一个新条目,这是它的 XML 表示形式:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbYOUR_APP_ID</string>
</array>
</dict>
</array>
</plist>

关于iOS Facebook SDK openActiveSessionWithReadPermissions 永远不会在某些 FB 应用程序上返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13291683/

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