Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Facebook图形错误消息的可靠性_Android_Ios_Facebook_Graph_Access Token - Fatal编程技术网

Android Facebook图形错误消息的可靠性

Android Facebook图形错误消息的可靠性,android,ios,facebook,graph,access-token,Android,Ios,Facebook,Graph,Access Token,是否有可靠的方法从facebook平台获取访问令牌错误 我们的iOS/Android应用程序需要保存用户的Facebook会话。这很好,只是我们从Facebook获得的身份验证错误似乎不一致 本质上,如果我们从facebook上得到一个错误,我们想知道这是否需要用户重新验证,或者是由于间歇性错误(即,他们由于某种原因被限制了费率) 大多数facebook图形错误似乎在错误消息文本的正文中包含错误代码 有些则不然 e、 g {“error”:{“message”:“验证访问令牌时出错:会话无效,因

是否有可靠的方法从facebook平台获取访问令牌错误

我们的iOS/Android应用程序需要保存用户的Facebook会话。这很好,只是我们从Facebook获得的身份验证错误似乎不一致

本质上,如果我们从facebook上得到一个错误,我们想知道这是否需要用户重新验证,或者是由于间歇性错误(即,他们由于某种原因被限制了费率)

大多数facebook图形错误似乎在错误消息文本的正文中包含错误代码

有些则不然

e、 g

{“error”:{“message”:“验证访问令牌时出错:会话无效,因为用户已注销。”,“type”:“OAutheException”}

不包含错误代码,因此检查此错误的唯一方法是对“message”进行字符串比较。这似乎是一种非常不可靠的检查错误的方法

似乎几乎可以检查json字符串中的“type”变量是否表示“OAuthException”,但如果用户受速率限制,则也会抛出一个OAuthException,但不需要用户重新登录,只需要他们等待一段时间并停止发布这么多内容

我已经看到了这里列出的方法:但这仍然存在一个问题,即如果我的游戏用户碰巧对在墙上发帖过于热情,他们将需要重新登录facebook

那么,有没有可靠的方法从facebook平台获取错误呢


现在我能找到的最好的解决方案是解析消息字符串以查找错误代码,如果我没有找到任何错误代码,则重新解析字符串以查找特定的消息(例如“错误验证访问令牌”),最后如果我无法确定错误是什么,只需惊慌并注销用户即可。

不幸的是,我还没有找到处理此问题的好方法。到目前为止,我找到的最佳解决方案是查看错误是否为OAutheException,将错误消息与不需要重新验证的“可接受失败”白名单进行比较,但如果错误与白名单上的任何错误都不匹配,我假设用户必须使用Facebook重新验证


作为参考,我发现唯一可以被列入白名单的错误是“用户速率受限”错误。为了检测这一点,我检查错误消息是否包含子字符串“(#341)”,这是此错误的错误代码(并非此错误是错误消息正文中包含错误代码的少数错误之一)。

不幸的是,我没有找到处理此错误的好方法。到目前为止,我找到的最佳解决方案是查看错误是否为OAutheException,将错误消息与不需要重新验证的“可接受失败”白名单进行比较,但如果错误与白名单上的任何错误都不匹配,我假设用户必须使用Facebook重新验证


作为参考,我发现唯一可以被列入白名单的错误是“用户速率受限”错误。为了检测这一点,我检查错误消息是否包含子字符串“(#341)”,这是此错误的错误代码(不是说此错误是错误消息正文中包含错误代码的少数错误之一)。

现在我要保守一些。我假设任何OAutheException都需要用户注销,除非我可以确认异常不需要这样做。基本上,这意味着测试我所知道的“安全”异常,并向用户提供反馈。这仍然意味着用户可能会收到很多“抱歉,您必须再次登录”。此外,对于任何感兴趣的人,这里列出了一个常见错误响应的简短列表:
“会话在unix时间某个时间过期。当前unix时间是某个时间。
”由于用户更改了密码,会话已无效。“
“验证访问令牌时出错:用户ID未授权应用程序应用程序ID”
“验证访问令牌时出错:会话无效,因为用户已注销。”
“必须使用活动访问令牌查询有关当前用户的信息”
最后,您可以测试错误消息是否包含要测试速率受限用户的字符串(#341)。如果他们受到速率限制,他们不需要重新验证(看起来),只需要一些反馈,他们应该停止发布这么多。HTTP响应代码有帮助吗?嗯,好的,我没有尝试拦截HTTP响应代码。它们被Android SDK包起来并隐藏起来,但我应该能够对其进行修补,以便响应也可以通过HTTP响应发送。我现在要调查一下,看看这是否能让人更清楚,谢谢你的提示。现在我要保守一点。我假设任何OAutheException都需要用户注销,除非我可以确认异常不需要这样做。基本上,这意味着测试我所知道的“安全”异常,并向用户提供反馈。这仍然意味着用户可能会收到很多“抱歉,您必须再次登录”。此外,对于任何感兴趣的人,这里列出了一个常见错误响应的简短列表:
“会话在unix时间某个时间过期。当前unix时间是某个时间。
”由于用户更改了密码,会话已无效。“
“验证访问令牌时出错:用户ID未授权应用程序应用程序ID”
“验证访问令牌时出错:会话无效,因为用户已注销。”
“必须使用活动访问令牌查询有关当前用户的信息”
最后,您可以测试错误消息是否包含要测试速率受限用户的字符串(#341)。如果他们受到费率限制,他们不需要重新验证(看起来),但只需要一些反馈,他们应该停止发布这么多。HT是吗