【发布时间】:2011-04-03 07:44:17
【问题描述】:
我正在尝试记录 facebook 的令牌和到期日期,因为不是每次都授权用户。但是今晚我收到了这个错误,例如:{"error":{"type":"OAuthException"。
首先让我解释一下我如何以及何时记录到期日期和令牌:
在DidLogin:
-(void)fbDidLogin{
[[NSUserDefaults standardUserDefaults]setValue:facebook.accessToken forKey:@"fb_access_token"];
[[NSUserDefaults standardUserDefaults]setObject:facebook.expirationDate forKey:@"fb_expiration_date"];
在登录中:
facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"fb_access_token"];
facebook.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"fb_expiration_date"];
if (![facebook isSessionValid]) {
NSLog(@"session not valid authorize again");
[facebook authorize:_permissions delegate:self];
}
else
{
if([delegate respondsToSelector:@selector(didFB_login)])[delegate didFB_login];
self.loggedin=TRUE;
}
经过NSLog我明白了这个问题:
我的有效期是
exp date:4001-01-01 00:00:00 +0000
所以为了确保我没有犯错,我修改了facebook.m:
//FBLoginDialogDelegate
/**
* Set the authToken and expirationDate after login succeed
*/
- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate {
self.accessToken = token;
self.expirationDate = expirationDate;
NSLog(@"self.expirationDate:%@",self.expirationDate);
if ([self.sessionDelegate respondsToSelector:@selector(fbDidLogin)]) {
[_sessionDelegate fbDidLogin];
}
}
然后强制进行新的授权调用,但结果仍然是:
self.expirationDate:4001-01-01 00:00:00 +0000
现在的问题是:Facebook OAuth 中是否存在错误?如何确定问题不在我的日期保存代码中?
【问题讨论】: