Facebook iOS SDK v 3.1.1遇到问题

时间:2012-11-06 00:45:17

标签: ios facebook-graph-api ios6 facebook-ios-sdk

我的应用程序现在使用适用于iOS的Facebook SDK版本3.1.1。

在iOS6上,我注意到FBSession expirationDate的奇怪行为。日期总是设置为4001年(遥远的未来?)。我已经读过这可能与offline_access权限有关但我们并没有要求(我们曾经在应用程序的一个非常旧的版本中做过。但这是一个干净的图像上的全新安装。)

根据FB SDK指南,我们总是首先通过FBSession openActiveSessionWithReadPermissions请求基本读取权限。返回的会话到期日期始终为4001-01-01。之后,当我们要发帖时,我们会致电FBSession reauthorizeWithPublishPermissions,要求publish_action

这一切似乎都能正常工作,直到令牌过期。我只注意到expirationDate问题,因为我发现我们将过期的令牌传递给图形API,并且这些调用失败了。

但这不应该发生,对吧? - 每当应用程序冷却时,我们都会调用FBSession openActiveSessionWithReadPermissions,每当应用程序生效时,我们都会调用FBSession handleDidBecomeActive。这应该是正确的刷新任何过期的活动令牌,是吗?

我可能做错了什么,有什么事要检查?为什么expirationDate设置为4001?

修改

我认为我的问题与此处描述的内容有关:Expired access token after openActiveSession for Facebook iOS SDK

我没有使用任何FB SDK支持来调用图API。因此,我没有利用显然内置的SDK支持来刷新iOS6管理的令牌。

编辑2

我认为这与我的问题完全相同:

iOS 6 Facebook Login not refreshing access token

也在这里引用:http://developers.facebook.com/bugs/441739699216684?browse=search_5099512da57214b73000801

1 个答案:

答案 0 :(得分:0)

offline_access权限实际上确实返回了在4001年过期的身份验证令牌。

根据我的经验,到目前为止,iOS 6的原生FB身份验证始终返回一个令牌,其失效日期(在你的应用程序的plist中)也记录为4001年,但其实际到期日期大不相同,根据{{ 3}}。简而言之,不要依赖手机上存储的值。不知怎的,这是一个脱节。

我也有同样的假设(调用FBSession openActive ...和handleDidBecomeActive)关于我的令牌通过调用这些方法得到刷新,但这对我来说也不是很好。

在您的更新中,您链接到我提出的类似问题,我刚刚添加了我的解决方案。你可以在这里查看: FB token debugger

希望这有帮助!