无法使用 iOS SDK 和本机 Facebook 应用程序对 Facebook 进行身份验证

Posted

技术标签:

【中文标题】无法使用 iOS SDK 和本机 Facebook 应用程序对 Facebook 进行身份验证【英文标题】:Can't auth to Facebook with iOS SDK and native Facebook application 【发布时间】:2012-08-16 10:44:50 【问题描述】:

我有什么以及发生了什么问题:

    我有一个带有游戏应用程序的 Facebook 帐户(人们每天都在玩) 我还有一个带有测试应用程序的 Facebook 帐户,该帐户是最近使用默认设置创建的。 我的 iPod 上有本机 Facebook 应用程序 我正在开发使用 Facebook ios SDK 的 iOS 应用程序。

无效流:

如果我使用第一个应用程序的 App ID/API 密钥,我会打开我的应用程序并尝试登录。 Facebook SDK 打开本机 FB 应用程序并显示该屏幕

我按 OK 并返回我的 iOS,但出现此类错误且没有访问令牌:

(NSError *) $0 = 0x001710f0 Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" UserInfo=0x16d4b0 com.facebook.sdk:ErrorLoginFailedOriginalErrorCode=210

有效流程:

如果我使用第二个(测试)应用程序中的 App ID/API 密钥,我会打开我的应用程序并尝试登录。 Facebook SDK 打开本机 FB 应用程序并显示该屏幕

我按 OK 并使用有效的访问令牌返回我的 iOS。

应用程序的设置相同,我没有发现任何差异。如果我有本机 Facebook 应用程序,则会出现此问题。如果我没有,Facebook SDK 会打开浏览器,授权将通过第一个和第二个 App ID 成功。

如果有人遇到这样的问题,请帮忙。非常感谢。

【问题讨论】:

我也遇到了这个问题。当我用我自己的一个替换应用程序 ID 时,它似乎工作正常。似乎他们可能包含了无效的应用程序 ID? 【参考方案1】:

我解决了这个问题。

实际上在更改了这里和那里之后,我发现我的捆绑包 ID 不匹配。我在以下 3 个地方保持捆绑 ID 相同并且它有效:

    项目的包标识符。 在您的 FB a/c 中,名为“iOS Bundle ID:”的文件位于 Native iOS App 标题下。 AppDelegate.m 中的通知字符串值

    NSString *const FBSessionStateChangedNotification = @"yourbundleid:FBSessionStateChangedNotification";

【讨论】:

FBSessionStateChangedNotification 是您自己代码中的变量,对吧?那么这有什么关系呢? 我在登录时遇到问题,我检查了应用设置中的捆绑包 ID 是否正确。我应该在哪里放置通知字符串值?谢谢! 我没有定义您在第 3 步中提到的那个常量。有错吗? @user102008 变量的赋值似乎只是为了唯一。您应该能够通过使用应用程序文件的前缀命名变量值来获得相同的结果,例如MYSessionStateChangedNotification【参考方案2】:

我发现我在请求权限时收到了同样的错误:“offline_access”。当我停止请求此权限时,错误消失了。

【讨论】:

【参考方案3】:

我遇到了同样的问题,我的 BundleId 在 FB 和我的项目中都是正确的。

检查您的 FB 应用程序是否已在设置 -> Facebook 中启用。我的被​​禁用(尽管我不记得禁用它),一旦我启用它,它就被修复了。

在我的测试过程中,我已经多次从我的 FB 帐户中添加和删除了我的 FB 应用程序,该帐户与我的 iPhone 相关联。它可以解释为什么我的应用神奇地被禁用了。

【讨论】:

并检查您是否拥有最新版本的 Facebook iOS SDK 我去了这个设置,我的设置为打开,但我将其关闭然后再打开,它突然工作了。不知道是不是巧合! 肯定不是巧合!很高兴它有帮助:)

以上是关于无法使用 iOS SDK 和本机 Facebook 应用程序对 Facebook 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Facebook SDK 3.1 防止 iOS 本机登录

facebook-ios-sdk 是不是使用 iOS 6 Facebook 集成来支持登录而不打开本机 Facebook 应用程序?

Facebook iOS SDK 登录原生和 UIWebView 登录

Facebook iOS SDK 使用 UIWebView 而不是 safari 登录(本机技巧/解决方案)

Facebook Android SDK 仅在安装本机应用程序时工作

iOS Facebook SDK 原生分享