我的应用程序现在使用适用于 iOS 的 Facebook SDK 版本 3.1.1。
在 iOS6 上我注意到奇怪的行为FBSession expirationDate
。日期始终设置为 4001 年(遥远的未来?)。我读到这可能与offline_access
许可,但我们并不要求这样做(我们曾经在应用程序的一个非常旧的版本中这样做过。但这是在干净图像上的全新安装。)
根据 FB SDK 指南,我们始终首先通过 FBSession openActiveSessionWithReadPermissions 请求基本读取权限。返回的会话到期日期始终为 4001-01-01。稍后,当我们想要发帖时,我们会打电话FBSession reauthorizeWithPublishPermissions
, 要求publish_action
.
在令牌过期之前,这一切似乎都工作正常。我只注意到过期日期问题,因为我发现我们将过期的令牌传递给图形 API,而这些调用失败了。
但这不应该发生,对吧? - 每当应用程序启动冷时我们都会打电话FBSession openActiveSessionWithReadPermissions
,每当应用程序激活时我们调用FBSession handleDidBecomeActive
。这对于刷新任何过期的活动令牌应该是正确的,是吗?
我可能做错了什么,需要检查哪些事项?为什么到期日期设置为 4001?
Edit:
我认为我的问题与此处描述的内容有关:Facebook iOS SDK 的 openActiveSession 之后访问令牌过期 https://stackoverflow.com/questions/12612629/expired-access-token-after-openactivesession-for-facebook-ios-sdk
我没有使用任何 FB SDK 支持来调用图形 API。因此,我没有利用明显内置的 SDK 支持来刷新 iOS6 管理的令牌。
Edit 2:
我认为这与我的问题完全相同:
iOS 6 Facebook 登录不刷新访问令牌 https://stackoverflow.com/questions/13125430/ios-6-facebook-login-not-refreshing-access-token
这里也引用了:http://developers.facebook.com/bugs/441739699216684?browse=search_5099512da57214b73000801 http://developers.facebook.com/bugs/441739699216684?browse=search_5099512da57214b73000801