objective-c – Facebook要求授权已经授权的用户

我在Facebook应用程序身份验证过程中遇到问题,我的Facebook帐户已经授权该应用程序,但有时当我在设备上运行应用程序时,它会打开Facebook应用程序并且对话框显示“您已经授权此应用程序”,这种情况发生了使用相同的Facebook帐户在同一设备上多次.

当我分配Facebook类对象时,我还在NSUserDefaults中保存所有需要的数据:

facebook = [[Facebook alloc] initWithAppId:appID andDelegate:self];

NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];

if([userDefault objectForKey:@"FBAccessTokenKey"] && [userDefault objectForKey:@"FBExpirationDateKey"])
{
    facebook.accessToken = [userDefault objectForKey:@"FBAccessTokenKey"];
    facebook.expirationDate = [userDefault objectForKey:@"FBExpirationDateKey"];
}

同样在fbDidLogin和fbDidExtendToken FBSessionDelegate方法中:

- (void)fbDidLogin 
{
NSLog(@"fbDidLogin");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
- (void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt 
{
NSLog(@"token extended");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:accessToken forKey:@"FBAccessTokenKey"];
[defaults setObject:expiresAt forKey:@"FBExpirationDateKey"];
[defaults synchronize]; 
}

我错过了什么?

解决方法

这是一个 bug in an older version of the Facebook SDK,但现在已经解决了.

Download the latest version of the iOS SDK,你将摆脱它.

相关文章

首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代...
1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int...
C++的auto关键字在C+⬑新标准出来之前基本...
const关键字是用于定义一个不该被改变的对象,它的作用是告诉...
文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...