1

我遵循了所有说明:

  • (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI在我的 appdelegate 标头和实现中定义
  • NSString *const FBSessionStateChangedNotification是独特的
  • 我使用FBLoginView, 就像在 Scrumptious 示例应用程序中一样

但是 openSessionWithAllowLoginUI 永远不会被调用!

由于在该方法中设置了权限,因此我无法更改它们。

- (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];
            }];
}

我能做些什么来解决这个问题?

4

2 回答 2

2

尝试将您的 facebook iOS sdk 更新到最新版本。

像这样使用@"Public_profile" 代替@"basic_info": FBLoginView *loginView = [[FBLoginView alloc] initWithReadPermissions: @[@"public_profile", @"email", @"user_friends"]];

于 2014-07-29T11:11:13.737 回答
0

他们建议的 Facebook 开发者网站,您必须在 applicationDidFinishLaunching 本身时开始该部分。所以你需要从那里调用openSessionWithAllowLoginUI: NO(不需要提供登录 ui)。如果用户没有登录,请不要担心这种方法不会做任何事情。在其他情况下,如果用户已经获得授权,它将为用户启动会话并更改状态(您将收到通知),因此您可以相应地设置登录按钮。最后,此方法是否无法启动会话允许用户通过调用 openSessionWithAllowLoginUI 通过登录按钮登录:YES

于 2013-06-18T14:15:10.603 回答