400 Неверный запрос при публикации оценки пользователя через Facebook SDK для Unity

Я использую редактор Unity3D 4.3.4 и SDK Facebook для Unity 5.1, что позволяет проводить тестирование внутри редактора. Я могу успешно публиковать скриншоты своей игры, но я изо всех сил пытаюсь опубликовать счет.

Я основывал свой код на этих двух примерах: Facebook Graph API и Учебное пособие по Unity для Facebook SDK . В методе обратного вызова, когда я проверяю объект результата, я получаю:

ошибка 400, неверный запрос

Если я изменю метод с POST на GET, я не получу ошибку, но оценка также не будет опубликована. Но, по крайней мере, я знаю, что оценка и access_token отправляются.

Вот что захватывает прокси (скрипач), но мне не удалось захватить POST, только GET.

GET / мне / оценки? Балл = 89 & access_token = CAAIx1MAZCucgBAEh8LvPA5A4JGuUBSAre0WGhQRZC11WHEgFh1KQJNnsbOEjN5ppeqfumfazmS6CIrZCRlJEKNVhU9wtZCJJ66d3sJqBQYyAbSpBnNIrLN70hJ91uJbEXRD1HwITbViziv9ZC1vhLleyKOILrN97DItP1DnGbzP0y0xoKmVA4RN42Shb716EUEY49wZBlsXXXXXX & HTTP / 1.1

Вот мой код:

private IEnumerator PostHighScore() 
{
yield return 0;
int highScore;
highScore = (int)LevelGenerator.Instance.distance;
Dictionary<string, string> wwwForm = new Dictionary<string, string>();
wwwForm["score"] = highScore.ToString();
Log("Just about to POST to /me/scores");
FB.API("/me/scores", Facebook.HttpMethod.POST, PostHighScoreCallback, wwwForm);
}

person Baltico    schedule 29.04.2014    source источник


Ответы (1)


Я смог решить проблему. Было очень трудно понять это, потому что объект результата типа FBResult предоставляет только 3 свойства: Строка Текст, которая была пустой, Изображение в форме Texture2D, также пустое, и строка Ошибка, которая показывала только «400 Bad Request». ". Мне не удалось перехватить ответ на моем прокси-сервере Fiddler. Подробнее о FBResult см. здесь.

К счастью, Mono Developer позволил мне увидеть частные части объекта FBResult, и, расширив данные, я нашел свойство с именем responseHeaderString, которое показало более подробную ошибку, возвращенную в заголовке.

Ошибка была:

WWW-Authenticate: OAuth "Платформа Facebook" "invalid_request" "(#3) Метод разрешен только для игр"

Оттуда я легко обнаружил, что мне нужно перейти к сведениям о приложении на Facebook и изменить категорию на «Игры». Поскольку мой Facebook был на испанском языке, когда я создавал свое приложение, я выбрал «Развлечения», поскольку «Juegos» не было в списке, вам нужно прокручивать, и это не очевидно.

Я хотел поделиться этой информацией, поскольку даже если вы столкнулись с совершенно другой проблемой, зная, что проверка объекта FBResult от Mono Developer поможет вам выяснить причину в заголовках ответов.

person Baltico    schedule 01.05.2014
comment
Я застрял на той же проблеме, и ваш пост вывел меня из себя :D Большое вам спасибо! - person Nahuel Bergamo; 08.05.2014