1

新的 OAuth 2.0 客户端流程提供了一个带有 expiresIn 时间的访问令牌。通常这是 1-2 小时。正在玩游戏的用户可能会玩那么长时间,他们也可能会玩一会儿,然后走开,然后在 3-4 小时后回来。

从文档中可以看出,我只是应该处理来自 API 调用的错误,如果令牌无法工作,请重新加载浏览器。好吧,这对于游戏来说并不是那么好,因为这可能发生在关键时刻。

即使我设置了一个计时器并再次调用 FB.getLoginStatus() , expiresIn 将保持不变,因此它显然与初始登录时间相关。

游戏是否应该预先调用所有的 Facebook API,然后缓存所有数据?有没有办法在不重新加载网页的情况下刷新 access_token?

4

1 回答 1

2

我做了一些实验,你可以调用 setTimeout() 并从原始的 getLoginStatus 调用中传递 expiresIn 值。然后,如果您再次调用 getLoginStatus 超时,它将使用新的访问令牌和新的 expiresIn 时间刷新。冲洗,重复。

于 2011-10-14T07:47:29.560 回答