错误处理 – 处理错误代码

通过在我的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应用程序?

最佳答案 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中是否存在错误并从那里处理它.如果您发现某些情况并非如此,请告诉我们.

点赞