Ios (BOOL)openSessionWithAllowLoginUI:(BOOL)永远不会调用allowLoginUI
我遵守了所有的指示:Ios (BOOL)openSessionWithAllowLoginUI:(BOOL)永远不会调用allowLoginUI,ios,objective-c,permissions,facebook-login,Ios,Objective C,Permissions,Facebook Login,我遵守了所有的指示: (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI在我的 appdelegate标头及其实现 NSString*const FBSessionStateChangedNotification是唯一的 我使用了一个FBLoginView,就像在美味的示例应用程序中一样 但是从来没有调用过openSessionWithAllowLoginUI 因为权限是在该方法中设置的,所以我无法更改它们 - (BOOL)openSes
在我的 appdelegate标头及其实现(BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI
是唯一的NSString*const FBSessionStateChangedNotification
- 我使用了一个
,就像在美味的示例应用程序中一样FBLoginView
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI
{
return [FBSession openActiveSessionWithReadPermissions:@[@"basic_info", @"email"]
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
{
[self sessionStateChanged:session state:state error:error];
}];
}
我能做些什么来解决这个问题?他们建议的Facebook开发者网站,你必须在ApplicationIDFinish启动自己时启动该部分。因此,您需要使用allowloginui:NO调用OpenSession(无需提供登录ui)。不要担心,如果用户没有登录,这个方法不会做任何事情。在另一种情况下,如果用户已经获得授权,它将为用户启动一个会话,并更改状态(您将收到通知),以便您可以相应地设置登录按钮。最后,如果此方法无法启动会话,则允许用户通过调用openSessionWithAllowLoginUI通过登录按钮登录:是尝试将facebook iOS sdk更新为最新版本
使用@“Public_profile”代替如下所示的@“basic_info”:FBLoginView*loginView=[[FBLoginView alloc]initWithReadPermissions:@[@“Public_profile”、@“email”、@“user_friends”] 我不明白你的问题。你说你必须调用的方法问题是,尽管这个方法存在并且实现了,但在运行时从未调用过。有人必须调用这个方法,它不会自动得到调用。实际上,从ApplicationIDFinishLaunching开始,您必须调用该方法OK,我自己在
ApplicationIDBecomeActive
中调用了该方法(也调用了ApplicationIDFinishLaunching
),但它会在启动时提示用户。我希望用户在登录时得到提示。你必须这样调用[self-openSessionWithAllowLoginUI:NO]我已经实现了登录,就像在美味的示例应用程序中一样。通过使用情节提要,添加一个UIView
并将其与类FBLoginView
关联,可以完成此操作。我请求权限的问题的解决方案是添加self.loginView.readPermissions=@[@“基本信息”,“电子邮件”]viewDidLoad
方法中的code>(为该方法创建出口后)。这是一份非常详细的文件…@btoueg如果你解决了你的问题,那么就把它作为一个答案发布,并接受它,这样其他人就可以了解这个解决方案。