2012-07-09 145 views
4

我在Facebook應用程序驗證過程中遇到問題,我的Facebook帳戶已經授權該應用程序,但有時在設備上運行應用程序時,它會打開Facebook應用程序,對話框顯示「您已經授權這個應用程序「,而且這種情況會在同一個設備上使用同一個Facebook帳戶多次發生。Facebook要求授權已授權的用戶

而且我現在的儲蓄都在NSUserDefaults所需要的數據時,我分配Facebook類對象:

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

fbDidLoginfbDidExtendTokenFBSessionDelegate方法:

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

我錯過了什麼?

+0

它是從設備上刪除應用程序後? – Moxy 2012-08-05 14:40:58

回答

1

這是一個bug in an older version of the Facebook SDK,但現在已經解決。

Download the latest version of the iOS SDK,你會擺脫它。

+0

我剛剛下載了Facebook SDK的最新(3.1)版本,並且此行爲仍然存在。 – Jon 2012-11-20 00:11:52

+0

同樣的問題在這裏。任何解決方案 – 2012-12-19 09:56:32

+0

如果問題仍然存在,我建議您重新打開該錯誤,並使用棍子戳Facebook,直到他們修復爲止。 :) – 2012-12-19 12:02:31