Facebook SDK 3.5.1 无法在 Facebook 登录时打开 Facebook 应用

Posted

技术标签:

【中文标题】Facebook SDK 3.5.1 无法在 Facebook 登录时打开 Facebook 应用【英文标题】:Facebook SDK 3.5.1 doesn't open Facebook App on Facebook login 【发布时间】:2013-05-24 18:32:56 【问题描述】:

我的应用使用 Facebook SDK 3.0。我在 ios 设置中没有 Facebook 帐户,但我在设备 (iOS 6.1.3) 上安装了 Facebook 应用程序,并想在我的应用程序中登录 Facebook。我打电话:

NSArray* aPermissions = [NSArray arrayWithObjects: @"user_about_me", @"user_activities", @"user_interests", @"user_notes" , @"read_stream", @"user_status",  @"user_likes" , @"friends_likes", @"user_hometown", @"user_location", @"email",  nil];
FBSession* session = [[FBSession alloc] initWithAppID:FACEBOOK_API_KEY
                                          permissions:aPermissions
                                      defaultAudience:FBSessionDefaultAudienceEveryone
                                      urlSchemeSuffix:nil
                                   tokenCacheStrategy:nil];

[session openWithBehavior: FBSessionLoginBehaviorUseSystemAccountIfPresent
                 completionHandler:^(FBSession *session, FBSessionState state, NSError *error) 
            [self connectResult:error withState:state];
        ];

我的应用会打开 Facebook 应用,然后它会将我返回到我的应用。很棒,我喜欢它的工作原理。

但我发现 Facebook 有新的 SDK 3.5.1,我决定更新我的旧 SDK。当我这样做时,我发现这个 SDK 没有打开 Facebook 应用程序,它只是在当前视图上方显示一个脏的 WebView。这很糟糕,因为用户应该记住他的登录名和密码。在我的情况下可能有什么问题?我错过了什么? Facebook 是否禁止通过 Facebook 应用登录?

这两种情况的代码是一样的。

【问题讨论】:

【参考方案1】:

它来自快速应用程序切换 URL 的事情。您可能有一个 fb$(FB_APP_ID) 之类的 url,但它被声明为第二个,而 FB SDK 只查看第一个资源: https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBUtility.m#L381

这行不通

这将起作用

【讨论】:

以上是关于Facebook SDK 3.5.1 无法在 Facebook 登录时打开 Facebook 应用的主要内容,如果未能解决你的问题,请参考以下文章

Facebook通过iOS中的Facebook SDK通过应用程序登录?

iOS Facebook SDK 权限未经审查

是否可以在不使用 iOS SDK 的情况下集成 Facebook 登录?

Facebook SDK:在IOS7上无法完成操作(com.facebook.sdk错误2)

Facebook iOS SDK - 分享用户照片

无法在 Xcode 3.2.6 上为 iOS 构建 Facebook SDK