我正在使用Facebook iOS SDK 3.1。
来自FB docs
从我们的移动SDK(Android和iOS)创建的应用程序,从桌面应用程序和服务器端登录流程自动获得长期用户访问令牌。每次用户触发auth流时,这个长期存在的令牌都会刷新并扩展。
令牌的有效期为60天。
我有当前的实施:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
if (![FBSession activeSession].isOpen) {
if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) {
[[FBSession activeSession] openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {}];
}
}
}
,但只有当应用程序第一次启动或被杀死之后才会触发此操作。
这里有几个问题:
在使用应用程序时延长令牌的正确步骤应该是什么,但是在60天内没有进行FB调用。
假设应用程序正在运行或进入后台模式且用户未使用任何FB功能(例如共享/注销/登录),是否会自动续订令牌?
通过SDK访问FB调用时,令牌是否会自动续订并在FBSession中可用?
答案 0 :(得分:4)
为了澄清一下,使用Facebook SDK 3.1时,在进行API调用时或在auth流程中,访问令牌会在后台刷新。刷新发生在距离上次刷新时间大约一天之后。