iOS FBSDK 上的 Facebook 登录

Posted

技术标签:

【中文标题】iOS FBSDK 上的 Facebook 登录【英文标题】:Facebook login on iOS FBSDK 【发布时间】:2015-09-18 16:21:59 【问题描述】:

我设置了与 FB 开发者页面相同的所有内容(appId、appName、bundleId...)。我在 FBSDK 4.6 和 ios 9 上工作。我也已经在 info.plist 上添加了这个密钥。

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
</array>

但是,在运行时,我收到如下输出错误:

canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"

有人知道发生了什么吗?

【问题讨论】:

【参考方案1】:

对于 iOS 9,您可以向 info.plist 添加更多键。

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>facebook.com</key>
    <dict>
      <key>NSIncludesSubdomains</key> <true/>        
      <key>NSExceptionRequiresForwardSecrecy</key> <false/>
    </dict>
    <key>fbcdn.net</key>
    <dict>
      <key>NSIncludesSubdomains</key> <true/>
      <key>NSExceptionRequiresForwardSecrecy</key>  <false/>
    </dict>
    <key>akamaihd.net</key>
    <dict>
      <key>NSIncludesSubdomains</key> <true/>
      <key>NSExceptionRequiresForwardSecrecy</key> <false/>
    </dict>
  </dict>
</dict>

Facebook getting started

【讨论】:

我已经添加了。如果没有,您将收到来自 fb 开发者页面的文档描述的异常。【参考方案2】:

在您的手机上运行该应用程序以在安装了 Facebook 的情况下进行测试。这可能是因为它在模拟器上不起作用或必须安装 facebook。

【讨论】:

啊,我可以在设备上运行,但我当前的设备在 iOS 8 上。我将 FBSDKLoginManager 上的行为更改为浏览器或 Web 或 SystemAccount,但在模拟器上没有任何幸运。【参考方案3】:

我会忽略它。

根据他们的常见问题解答,Facebook 承认这一点,并建议您放手,只要您正确设置了他们的 plist 设置

为什么我会看到类似 'canOpenURL: failed for URL: "fb...://' or 的控制台消息?

这是一个 Xcode 警告,指示 canOpenURL: 调用返回 false。只要您如上所述在 plist 中配置了 LSApplicationQueriesSchemes 条目,就可以忽略此警告

来源:https://developers.facebook.com/docs/ios/ios9

【讨论】:

以上是关于iOS FBSDK 上的 Facebook 登录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 fbsdk 登录 React Native 中更改名称应用程序('项目想要使用 facebook.com')iOS

操作无法完成 com.facebook.sdk 错误 3 - IOS-react-native-FBSDK

新FBSDK 4.0+,使用访问令牌登录或分享

拒绝权限后登录 Facebook

使用FBSDK登录,无法执行segue

Swift FBSDK 问题 - 某些用户的 Facebook ID 为零