有从facebook平台获取访问令牌错误的可靠方法吗?Facebook的可靠性图形错误消息
我们的iOS/Android应用程序需要保存用户的Facebook会话。这很好,除了我们从Facebook获得的身份验证错误似乎不一致。基本上,如果我们从Facebook得到一个错误,我们想知道这是否需要用户重新进行验证,或者是否由于间歇性错误(即由于某种原因它们受到速率限制)。
大多数facebook图形错误似乎包含错误消息文本正文中的错误代码。有些人不会。
例如
{ “错误”:{ “消息”: “错误验证接入令牌:会话是无效的,因为该用户注销。”, “类型”: “OAuthException”}}
不包含错误代码,因此检查此错误的唯一方法是对“消息”进行字符串比较。这似乎是一个非常不可靠的检查错误的方法。
似乎〜几乎可以检查json字符串中的“type”变量是否指示“OAuthException”,除非用户受速率限制,那么也会抛出OAuthException,但它不会不要求用户重新登录,它只需要他们稍等片刻,并停止发布这么多。
我已经看到了如何在这里列出:https://developers.facebook.com/blog/post/500但仍然有问题,我的游戏将需要用户重新登录Facebook,如果他们碰巧过分热衷于张贴到他们的墙上。
那么,有没有从Facebook平台获取错误的可靠方法?
现在我可以找到的最佳解决方案是解析错误代码的消息字符串,如果我找不到任何然后重新分析寻找特定消息的字符串(如“验证访问令牌的错误”),然后最后如果我无法确定错误是什么,只需恐慌并将用户注销。
现在我要保守了。我会假设任何OAuthException都需要用户注销,除非我可以确认这个异常不需要这个。 基本上这意味着测试我所知道的“安全”异常并向用户提供反馈。这仍然意味着用户可能会得到很多“抱歉,您必须重新登录”。 – agenttom
对于任何感兴趣的,这里是一个常见错误响应的简短列表: '“会话在unix时间SOME_TIME已过期,当前的unix时间是SOME_TIME.' '”会话已失效,因为用户已更改“ '”验证访问令牌时出错:USER_ID未授权应用程序APP_ID“” '“验证访问令牌时出错:会话无效,因为用户已注销”“ '”必须使用有效的访问令牌查询关于当前用户的信息“' – agenttom
,最后您可以测试以查看错误消息是否包含字符串(#341)以测试用户是否受限速。如果他们受速率限制,则不需要重新验证(它似乎)但只有一些反馈,他们应该停止张贴这么多。 – agenttom