我有一个存储的访问令牌 - 我想用它代表用户发布到Facebook。有没有办法在让用户发帖之前验证令牌是否仍然有效,以便我可以再次弹出挑战UI?
答案 0 :(得分:1)
您是否在请求offline_access?如果不是,则令牌将过期,但查询令牌应返回到期日期。在拨打电话之前,您可以在身边查看。
验证用户未删除权限或验证offline_access我认为需要点击Facebook服务器。如果失败,我会尝试发布并处理错误。这可能更有可能是令牌有效。
通过在每次通话之前进行检查,您可能会受到重大处罚(工作量增加一倍)来处理不常见的情况。如果访问令牌无效,你仍然必须提示它们,所以我只是处理错误并在之后提示。
此外,由于存在竞争条件,您仍然必须处理错误。您可以检查access_token,但在检查和发布之间的时间内,令牌可能会变为无效。
答案 1 :(得分:0)
根据我的经验(使用4.2),您需要在try .. catch中包装您的请求(OAuthException可能会触发)。我说的是你有离线访问的场景。 (如果您具有离线访问权限,并且用户在Facebook中删除了该应用程序,则您的离线令牌将过期 - 即使用户通过其他某种机制重新启用该应用程序)。