我正在使用 Facebook iOS SDK 3.1。
来自 FB docs
Apps created from our Mobile SDKs (Android and iOS), from Desktop Apps and the server-side Login flow automatically get long-lived User Access Tokens. This long-lived token refreshes and extends each time the user triggers the auth flow.
token 的有效期为 60 天。
我有当前的实现:
- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
if (![FBSession activeSession].isOpen) {
if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) {
[[FBSession activeSession] openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {}];
}
}
}
,但这只会在应用程序第一次启动或被杀死后触发。
这里有几个问题:
当应用程序正在使用但 60 天内没有进行任何 FB 调用时,扩展 token 的正确步骤应该是什么。
假设应用程序正在运行或进入后台模式并且用户没有使用任何FB功能,例如分享/注销/登录, token 是否会自动更新?
通过 SDK 访问 FB 调用时,token 会自动更新并在 FBSession 中可用吗?
Best Answer-推荐答案 strong>
澄清一下,在使用 Facebook SDK 3.1 时,访问 token 会在后台、进行 API 调用时或在身份验证流程期间刷新。自上次刷新时间起大约一天后会进行刷新。
- 如果在这段时间内没有进行任何 FB 调用,并且 token 过期,您应该重新授权用户。这可能意味着它们是通过重新验证流程进行的。因此,当他们进行与 FB 相关的调用并且由于 token 过期而失败时,您应该重新验证(另请参阅 https://developers.facebook.com/docs/reference/api/errors/ )。无论如何,您都应该将其构建到您的应用中,因为 token 过期或失效的方式可能不同。
- 不,它会在 API 调用时刷新(参见对 1 的回答)。
- 是的,在最后一次刷新后的一段时间后。
关于ios - facebook 万岁 token 更新,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/13993696/
|