gpt4 book ai didi

ios - 在 Facebook iOS SDK v4.0 中对应用程序启动时的事件 session 进行可靠检查

转载 作者:可可西里 更新时间:2023-11-01 06:20:04 25 4
gpt4 key购买 nike

我正在使用 Facebook iOS SDK 4.0 创建一个 iOS 应用程序,使用带有 FBSDKLoginButton View 类的简单 Facebook 登录对话框。

在上一次成功登录后启动应用程序时,按钮正确显示为“已登录”状态,即显示文本“注销”。

但是,[FBSDKAccessToken currentAccessToken] 为 nil,这就是为什么我的应用程序不知道事件 session ,因此不会用数据填充与 FB 相关的字段。

由于FBSession类在FB iOS SDK4.0中已经不存在了,如何才能正确判断是否存在缓存的session呢?

我假设 [FBSDKAccessToken currentAccessToken] 是实现它的方法。但是,如前所述,currentAccessToken 未设置...知道为什么它可能为零,或者如何正确检测事件/缓存 session 吗?

编辑:我已将对 currentAccessToken 的调用放在我的主视图 Controller 的 viewDidLoad 方法中,其中包含 Facebook 登录对话框广告按钮。不幸的是,如上所述,currentAccessToken 为 nil。为什么它不可用有什么建议吗?

EDIT2:Bigman 解决了这个问题(请参阅他在下面的回答中的评论):在 viewDidAppear 而不是 viewDidLoad 中获取 currentAccessToken 做了把戏。

最佳答案

所以我自己遇到了这个。

目标:在应用启动时,如果已经从之前成功的登录尝试中获取了 token ,则执行一些替代逻辑(在我的例子中,直接启动到不同的 View Controller )。

这里的关键是 Dheeraj 最初提出的内容。

[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];

您调用他们的共享代表的那一刻,就是他们唤醒一切的时候。所以代码示例。这可能是一个非常糟糕的做法,我不确定,这就是我让它工作的方式。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FBSDKLoginButton class];
[FBSDKProfile enableUpdatesOnAccessTokenChange:YES];
NSLog(@"What the heck, no token? %@", [FBSDKAccessToken currentAccessToken]);
//Output: What the heck, no token? (nil)
BOOL fbDidFinish = [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
NSLog(@"Hey! My Token! %@", [FBSDKAccessToken currentAccessToken]);
//Output: Hey! My Token! <FBSDKAccessToken: 0x7fddf8d136a0>
//Your address in memory will be different
//At this point, you can do additional logic based on having the Token, like skipping ahead to a different ViewController
return fbDidFinish;
}

假设您之前已经成功登录过一次,您应该会在第二个日志输出中看到您的访问 token 。希望这会有所帮助。

关于ios - 在 Facebook iOS SDK v4.0 中对应用程序启动时的事件 session 进行可靠检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29422437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com