在我的应用程序中,我需要检测是否已刷新访问令牌,以便我可以使用新令牌更新我的API。
我无法找到解决此问题的最佳方法,因为Facebook SDK会自动缓存访问令牌 - 目前我正在将旧令牌(我保存到NSUserDefaults)与activeSession的accessTokenData的accessToken进行比较。 / p>
如果令牌不同,我会使用较新的令牌发送更新我的api。
这是applicationWillEnterForeground
NSString *newToken = [FBSession activeSession].accessTokenData.accessToken;
NSString *oldToken = [[NSUserDefaults standardUserDefaults]valueForKey:@"accessToken"];
if (oldToken) {
if ([newToken isEqualToString:oldToken]) {
NSLog(@"token was not refreshed");
} else {
NSLog(@"token was refreshed");
[[NSUserDefaults standardUserDefaults]setValue:newToken forKey:@"accessToken"];
/* update API with new token*/
}
} else+
{
//if no token exists, set one with the current token
[[NSUserDefaults standardUserDefaults]setValue:newToken forKey:@"accessToken"];
}
我不得不承认这真的很酷,但我似乎无法找到解决办法。有没有更好的方法来接近它?