ios - FBSDKLoginManager logInWithReadPermissions : fromViewController: handler: completion not called on app first run

标签 ios facebook facebook-login ios10 fbsdkloginkit

我有一个支持 Facebook 登录的应用程序,出于某种原因 FBSDKLoginManager logInWithReadPermissions: fromViewController: handler:安装后第一次运行我的应用程序时不会调用它。如果我只是杀死我的应用程序(即使没有尝试登录 Facebook 或做任何事情:尝试在第一次打开时登录或不尝试登录不会改变任何东西)并再次打开它,它会完美运行。

为什么?

(我已经检查过传递给该方法的 View Controller 不是 nil 并且是当前 View Controller )

这是我的登录代码:

+(void)loginWithFacebookWithCompletion:(ULCompletion)completion{
    [[[FBSDKLoginManager alloc] init] logInWithReadPermissions:FACEBOOK_READ_PERMISSIONS fromViewController:[ULMasterViewController instance] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if(result.token){
          ...
        }
[...]

其余的无关紧要,因为根本不调用完成 block (即使有错误也没有)。我有 FACEBOOK_READ_PERMISSIONS硬编码:
#define FACEBOOK_READ_PERMISSIONS (@[@"user_friends", @"user_birthday", @"email", @"user_photos"])
最后,[ULMasterViewController instance]是有效的(不是 nil,并且在层次结构中有它的 View (否则它会提示 View 不在层次结构中,也尝试过))。

最佳答案

这在我的情况下工作。

1.在界面中创建FLoginManager的实例。

FBSDKLoginManager *manager

2. 在 ViewDidLoad 中初始化。
manager = [FBSDKLoginManager new]

3、最后使用FBLoginManager这个实例调用登录权限方法。

关于ios - FBSDKLoginManager logInWithReadPermissions : fromViewController: handler: completion not called on app first run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40089124/

相关文章:

java - Android 集成的 Facebook 无法始终如一地工作

没有有效 OAuth 重定向 URI 的 Facebook 登录

iphone - 在导航栏iPhone上设置自定义后退按钮,有时会在顶部显示后退按钮

ios - 使用其他参数上传 Alamofire 4 和 Swift 3 图片

node.js - NodeJS 函数的 Mocha 测试不调用回调

javascript - 知道是否点击了 facebook 的按钮

android - 如何使用自己的按钮登录 Facebook? (Facebook SDK 4.0)

ios - 实现 Facebook 登录 IOS

ios - 插入 View 时显示白屏

ios - 使 AppDelegate 接收来自自定义库的回调事件