通过在我的Unity应用程序中开发一些错误处理代码,以便在Facebook请求失败时采取自定义操作(强制本地用户注销或请求新权限),我看到Facebook Graph API (Handling error codes)文档之间存在一些不一致以及我收到的失败请求的结果。
尝试发布分数(Scores API)而不向我的应用授予写入权限时,分配回调的请求会收到FBResult
,其中包含:
result.Error == "403 Forbidden"
而不是与:
相关的内容result.Error == {
"error": {
"message": "API Permission Denied",
"type": "",
"code": 10 ,
"error_subcode": 467
}
}
查看FB示例friendsmash-unity时,他们只会忽略下一个代码段中显示的错误:
void APICallback(FBResult result)
{
Util.Log("APICallback");
if (result.Error != null)
{
Util.LogError(result.Error);
// Let's just try again
FB.API("/me?fields=id,first_name,friends.limit(100).fields(first_name,id)", Facebook.HttpMethod.GET, APICallback);
return;
}
Facebook是否在Graph API和。之间使用不同的模式 分数API处理错误?
我是否需要实现JSON错误和HTTP错误解析器?
处理Facebook内部错误的最佳做法是什么? Unity应用程序?
答案 0 :(得分:2)
1)Unity的WWW
课程有一些限制,遗憾的是我们不能让我们回复更有意义的错误。他们正在修复它,以便将来result.Error
会回复一条错误消息,result.Text
会在发生错误时填充有关错误的更有意义的详细信息。 Scores API和Graph API应使用相同的模式。虽然错误如何回归仍存在一些不一致之处。如果您确实找到类似的内容,请通过我们的错误报告工具告知我们:https://developers.facebook.com/bugs
2)为了安全地保护自己,我会说是的。确保您的游戏健壮,这是一个很好的做法。
3)我们尝试使用Graph API的模式是,除非出现问题,否则它不应该返回错误代码。然后它应该返回HTTP错误代码并且应该填充result.Error
。因此,最好的方法是检查某些内容是否在result.Error
中并从那里处理。如果您发现某些情况并非如此,请告诉我们。