4

我下载了新的Facebook iOS SDK 3.1,它承诺有一个本地登录提示。我在我的 iOS 6 设备上运行了他们的示例登录应用程序。当我尝试连接 Facebook 时,我没有获得本地登录。相反,Facebook 应用程序启动 - 与旧 SDK 相同。他们的 Facebook 登录按钮基本上是这样做的:

[appDelegate.session 
    openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
        [self updateView];
    }
];

我想也许示例代码没有调用正确的函数。所以我尝试了 FBSession的其他登录功能。

[appDelegate.session 
    openWithBehavior:FBSessionLoginBehaviorWithNoFallbackToWebView 
    completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
        [self updateView];
    }
];

我尝试了所有可能的行为,但没有一个会弹出本机登录提示。

4

3 回答 3

4

您是否先从 iOS 设置登录 Facebook?

一旦你这样做了,他们的示例项目 Scrumptious 将在你尝试连接时使用本机登录提示。

于 2012-09-26T19:49:16.877 回答
1

阅读:https ://developers.facebook.com/docs/howtos/ios-6/#nativeauthdialog

基本上你必须先申请基本权限和读取权限,然后分别申请发布权限。

于 2012-09-26T19:50:57.293 回答
1

这是设计使然,并在https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/upgrading-from-3.0/的第二部分中进行了描述

基本上,您无法通过 iOS6 对话框同时请求读取和发布权限。因此,您或多或少需要以交错的方式询问它们(例如,在首次登录时阅读,然后在您的应用实际需要发布时发布)。

如果您坚持使用已弃用的方法尝试同时读取和发布,SDK 只能返回 Web 或应用切换技术。

于 2012-09-27T07:16:28.930 回答