存储facebook令牌以进行离线访问

vda*_*bry 1 iphone facebook objective-c

我正在寻找一种方法来保存访问令牌,以允许用户在Facebook上发布,而无需登录每次调用图API:

我需要一个offline_access令牌,我将它存储在NSUserDefaults中,但当我再次尝试使用它时,我得到一个FacebookErrDomain错误10000

这是我做的:

在fbDidLogin中,我获取access_token并将其保存在用户默认值中

- (void)fbDidLogin {
    NSString *token = self.facebook.accessToken;
    [[NSUserDefaults standardUserDefaults] setObject:token forKey:@"facebookToken"];

}
Run Code Online (Sandbox Code Playgroud)

之后当我再次运行应用程序时,我只是从用户默认值中获取令牌,并将它们分配给facebook对象:

NSString *token = [[NSUserDefaults standardUserDefaults] objectForKey:@"facebookToken"];
[_facebook setAccessToken:token];
Run Code Online (Sandbox Code Playgroud)

但它不起作用..

有谁知道我可能做错了什么?

谢谢,文森特.

编辑:如果我[[NSUserDefaults standardUserDefaults] objectForKey:@"facebookToken"];看到令牌被保存后我做了一个NSlog .

Jus*_*ime 7

我遇到了同样的问题,我发现问题是你没有存储过期日期.

如果你这样做,它将允许你重新处理好.

示例代码:

 [[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"fb_access_token"];
 [[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"fb_exp_date"];
Run Code Online (Sandbox Code Playgroud)

检索是一样的,只需设置即可_facebook.expirationDate.