处理错误代码

时间:2014-03-31 14:53:22

标签: error-handling unity3d facebook-unity-sdk

通过在我的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;
    }
  1. Facebook是否在Graph API和。之间使用不同的模式 分数API处理错误?

  2. 我是否需要实现JSON错误和HTTP错误解析器?

  3. 处理Facebook内部错误的最佳做法是什么? Unity应用程序?

1 个答案:

答案 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中并从那里处理。如果您发现某些情况并非如此,请告诉我们。