ios Facebook SDK v4.x访问令牌为null,尽管已通过FBSDKLoginButton登录 [英] ios Facebook SDK v4.x access token null despite being logged in via FBSDKLoginButton

查看:93
本文介绍了ios Facebook SDK v4.x访问令牌为null,尽管已通过FBSDKLoginButton登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尽管按钮显示我已登录,但我的facebook访问令牌为null。有人知道为什么会这样吗?

My facebook access token is null despite the fact that the button shows that I'm logged in. Anyone know why this would be?

来自RootViewController.m

From RootViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];

    self->login_button = [[FBSDKLoginButton alloc] init];
    self->login_button.center = self.view.center;
    [self.view addSubview:self->login_button];

    FBSDKAccessToken* access_token =[FBSDKAccessToken currentAccessToken];
    NSLog(@"Access Token, %@",access_token);
}

来自ApplicationDelegate.m

From ApplicationDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [self.window setRootViewController:[[RootViewController alloc] init]];

    [self.window makeKeyAndVisible];

    [self.window setBackgroundColor:[UIColor purpleColor]];
    [FBSDKLoginButton class];
    return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
}

还设置了我的-ObjC链接器标志

also my -ObjC linker flag is set

推荐答案

需要首先调用FBSDKApplicationDelegate才能解析已缓存的令牌。由于您要立即设置根视图控制器,因此它将在FBSDKApplicationDelegate之前调用viewDidLoad。相反,您可以向上移动FBSDKApplicationDelegate:

The FBSDKApplicationDelegate needs to be called first to resolved cached tokens. Since you are setting the root view controller immediately, that calls your viewDidLoad before the FBSDKApplicationDelegate. Instead, you can move the FBSDKApplicationDelegate up:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Override point for customization after application launch.
  [FBSDKLoginButton class];
  BOOL r = [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];

  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

  [self.window setRootViewController:[[RootViewController alloc] init]];

  [self.window makeKeyAndVisible];

  [self.window setBackgroundColor:[UIColor purpleColor]];


  return r;
}

这篇关于ios Facebook SDK v4.x访问令牌为null,尽管已通过FBSDKLoginButton登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆