FBSDKLoginManager logInWithReadPermissions:fromViewController:处理程序:完成不调用应用程序第一次运行
我有一个Facebooklogin启用的应用程序,由于某种原因FBSDKLoginManager logInWithReadPermissions: fromViewController: handler:
不安装后我的应用程序的第一次运行调用。 如果我只是杀了我的应用程序(即使没有尝试login到Facebook或做任何事情:试图login首先打开或不改变任何东西),并再次打开它,它完美的作品。
为什么?
(我已经检查了传递给方法的视图控制器不是零,是当前的视图控制器)
这是我的login代码:
+(void)loginWithFacebookWithCompletion:(ULCompletion)completion{ [[[FBSDKLoginManager alloc] init] logInWithReadPermissions:FACEBOOK_READ_PERMISSIONS fromViewController:[ULMasterViewController instance] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if(result.token){ ... } [...]
剩下的就是不相关的,因为完成块根本不被调用(即使有错误也不会)。 我有硬编码的FACEBOOK_READ_PERMISSIONS
:
#define FACEBOOK_READ_PERMISSIONS (@[@"user_friends", @"user_birthday", @"email", @"user_photos"])
最后, [ULMasterViewController instance]
是有效的(不为零,并在层次结构中的视图(否则它抱怨视图不在hiearchy,也试过))。
这在我的情况下工作。
1,在界面创buildFBloginManager的实例。
FBSDKLoginManager *manager
2.在ViewDidLoad中初始化。
manager = [FBSDKLoginManager new]
3,最后使用FBLoginManager的这个实例调用login权限方法。
我遇到了这个确切的问题,这是非常令人沮丧的。 解决这个问题的关键是我的应用程序代码正在制作大量同时存在的FBSDKLoginManager对象。 重构我的代码以使用单例共享实例(而不是在[FBSDKLoginManager new]
的地方运行[FBSDKLoginManager new]
)为我消除了这个bug /问题。
神秘地,我从来不明白为什么这个工作。 我使用debugging器来追踪FBSDK代码,而我发现的唯一(非常)神秘的问题是,在loginWithReadPermissions
方法中,即使传递了非零值, fromViewController
参数也被设置为nil
。 奇怪 …
这没什么关系,但是尝试通过单独创buildFBSDKLoginManager对象来完成,因为我已经完成了同样的工作。
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
- FBFriendPickerDelegate与Facebook v4消失
- Facebook API对话框页面第二次显示错误
- IOSparsingPFLoginViewController didLoginUser当通过Facebooklogin时没有调用委托,为什么?
- Facebook Api在iOS应用程序中检入用户
- 我可以分享Facebook user.name和user.id多个视图
- Facebook的iOS SDK的戳
- 我如何使用访问令牌绕过FB.login()
- 如何使用Facebook Graph API和facebook ios sdk获取完整的用户对象?
- 从iOS应用程序直接login到Facebook – Facebook的SDK 3.1