Yos*_*far 1 facebook objective-c ios facebook-access-token
我一直在使用旧的Facebook SDK并保存了accessToken和expirationDate里面的NSUserDefaults.但是现在在新版本中Facebook SDK 3.2有一个叫做的新类FBAccessTokenData,我可以通过以下方式从那里获取accessToken:
[FBSession activeSession].accessTokenData.accessToken
[FBSession activeSession].accessTokenData.expirationDate
Run Code Online (Sandbox Code Playgroud)
我的问题是当我重新启动我的应用程序并再次单击Facebook按钮时,它会去Facebook寻求新的令牌,尽管我在3分钟前使用该应用程序,登录Facebook并获得新令牌.因此令牌尚未保存.
我想保存新的accessToken进入[FBSession activeSession],但accessToken并expirationDate是只读属性.
我现在几次阅读Facebook SDK文档,搜索stackOverflow和网络,但仍然没有任何线索如何做到这一点.
这是我的代码:
- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error
{
switch (state)
{
case FBSessionStateOpen:
{
// This is how i'm trying to save the token, like the old Facebook SDK.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[FBSession activeSession].accessTokenData.accessToken forKey:@"FBAccessTokenKey"];
[defaults setObject:[FBSession activeSession].accessTokenData.expirationDate forKey:@"FBExpirationDateKey"];
[defaults synchronize];
NSLog(@"FB: Session is open!");
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
{
NSLog(@"FB: Session is closed or login failed");
[self closeSession];
}
break;
default:
break;
}
[[NSNotificationCenter defaultCenter] postNotificationName:FBSessionStateChangedNotification
object:session];
if (error)
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
- (void)openSession
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:
^(FBSession *session, FBSessionState state, NSError *error)
{
[self sessionStateChanged:session state:state error:error];
}];
}
- (void)closeSession
{
[FBSession.activeSession closeAndClearTokenInformation];
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
| 归档时间: |
|
| 查看次数: |
4382 次 |
| 最近记录: |