Получение ответа 400 при выполнении аутентификации приложения для приложения podio

Я пытаюсь получить токен доступа с помощью аутентификации приложения для своего приложения Podio.

В настоящее время мой код выглядит так:

    const authUrl = 'https://podio.com/oauth/token';
    const data= "grant_type=app&app_id="+appId+"&app_token="+appToken+"&client_id="+clientId+"&redirect_uri="+uri+"&client_secret="+clientSecret;
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("requestResponse").innerHTML = this.responseText;
        }
      };
    xhttp.open("POST",authUrl, true);
    xhttp.send(data);

Я получаю ошибку 400, что означает, что запрос неверный. Но я тестировал его с помощью Beeceptor, он работает и выглядит нормально. Я не уверен, что делаю не так ...


person Jose Chavez    schedule 01.07.2019    source источник
comment
Получаете ли вы какой-либо ответ или другое сообщение об ошибке, только 400? Проверьте запрос на вкладке «Сети» в инструментах разработчика. Правильно ли выглядит запрос (и параметры)?   -  person Phillip    schedule 01.07.2019
comment
@Phillip Нет, всего 400. Нет responseText на запрос.   -  person Jose Chavez    schedule 01.07.2019


Ответы (1)


Наконец разобрался. Добавление строки кода ...

xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

Это исправило это идеально. Решение найдено здесь: https://help.podio.com/hc/en-us/community/posts/207481648-Cannot-authenticate-by-app-id

person Jose Chavez    schedule 01.07.2019
comment
Спасибо, что опубликовали решение своей проблемы ???? - person Phillip; 01.07.2019
comment
Спасибо, это очень помогло. Документация Podio API довольно плохая, они просто говорят, что вам нужно включить тело запроса, но не упоминают Заголовок Content-type должен быть установлен в application/x-www-form-urlencoded. Спасибо за указание на это... - person Ergin; 14.07.2020