Выполнение запроса curl с заголовками в скрипте приложения - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь сделать запрос скручивания, используя скрипт приложения, ссылка на официальное руководство которого приведена ниже. Вот запрос:

curl -X POST "https://bhagavadgita.io/auth/oauth/token" -H "accept: application/json" -H "content-type: application/x-www-form-urlencoded" -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=client_credentials&scope=verse"


Согласно официальному руководству:

Как получить токен доступа?
Сделайте POST-запрос к / auth / oauth / token с этими параметрами, отправленными в заголовках -
Идентификатор клиента - Получен из панели учетных записей после регистрации приложения.
Client Secret - Получается из Личного кабинета аккаунта после регистрации приложения.
Тип предоставления - используйте учетные данные клиента.
Область действия - используйте стих, если вы просто хотите получить доступ к стихам, главу, если вы просто хотите получить доступ к главам и главе стиха, если вы хотите получить доступ к обоим.

Я написал код как ниже:

function myFunction() {

var data = {
    'accept': 'application/json',
    'content-type': 'application/x-www-form-urlencoded',
    'header':{
              'client_id':'MY-CLIENT-ID',
              'client_secret':'MY-CLIENT-SECRET',
              'grant_type':'client_credentials',
              'scope':'verse'
    }

};

var response = UrlFetchApp.fetch('https://bhagavadgita.io/auth/oauth/token', data);
Logger.log(response.getContentText());
}

Я получаю сообщение об ошибке, как показано ниже:

Exception: Request failed for https://bhagavadgita.io returned code 405. Truncated server response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>405 Method Not Allowed</title> <h1>Method Not Allowed</h1> <p>The method is not allo... (use muteHttpExceptions option to examine full response) (line 13, file "Code")

Как правильно сделать такой запрос?

Ссылка: https://bhagavadgita.io/api/

1 Ответ

0 голосов
/ 16 апреля 2020

405 ошибка означает, что вы не можете запросить эту конечную точку с текущим HTTP-глаголом.

Вы должны указать, что ваш .fetch метод выполняет запрос POST Http.

Для этого необходимо указать в параметре "method" : "post" в параметрах выборки:

var data = {
    'client_id':'MY-CLIENT-ID',
    'client_secret':'MY-CLIENT-SECRET',
    'grant_type':'client_credentials',
    'scope':'verse'
}

var options = {
  "method" : "post",
  "accept": "application/json",
  "content-type": "application/x-www-form-urlencoded",
  "payload" : data
}

var response = UrlFetchApp.fetch('https://bhagavadgita.io/auth/oauth/token', options);

Ссылки:

UrlFetchApp

ОТДЫХ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...