1

新的OAuth 2.0客户端流程提供了一个expiresIn时间的访问令牌。通常这是1-2个小时。玩游戏的用户可能会花费这么长时间的游戏,他们也可能会玩一会儿,走开,并在3-4小时后回来。我们真的希望每1-2小时重新加载我们的Facebook应用/游戏吗?

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

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

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

回答

2

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

相关问题