Разработав некоторый код обработки ошибок внутри моего приложения Unity, чтобы выполнять специальные действия в случае сбоя запроса к Facebook (например, принудительный выход локального пользователя из системы или запрос нового разрешения), я обнаружил некоторые несоответствия между Facebook Graph API (обработка кодов ошибок) и результаты, которые я получаю для неудачных запросов.
При попытке опубликовать счет (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 и Scores API для обработки ошибок?
Нужно ли мне реализовывать парсеры ошибок JSON и HTTP?
Каковы наилучшие методы обработки ошибок Facebook в приложении Unity?