Скрипт Google Apps : Сообщение об ошибке API «требуется идентификатор клиента»

#google-apps-script

Вопрос:

Я создал переменную для хранения идентификатора клиента (CLIENT_ID), но постоянно получаю сообщение об ошибке, в котором говорится, что идентификатор клиента необходим при запуске этой функции. У кого-нибудь есть хоть малейшее представление о том, что я здесь сделал не так?

 function getAuth() {
  var authBasedUrl = 'https://test-api.service.hmrc.gov.uk/oauth/authorize';
  var response = UrlFetchApp.fetch(authBasedUrl,  {
      headers: {
        'Accept' : 'application/vnd.hmrc.1.0 json',
        'response_type': 'code',
        'client_id' : CLIENT_ID,
        'scope' : 'hello',
        'redirect_uri' : 'https://www.xxxxxxx.com/'
      }});
  var result = JSON.parse(response.getContentText());
  Logger.log(JSON.stringify(result, null, 2));
  } 
 

Ответ №1:

Основываясь на документах, которые вам нужны, чтобы сделать запрос на публикацию. На странице есть блок-маршрут, в котором говорится:

Включите параметры запроса в тело запроса, а не в заголовки запроса.

Редактировать:

 function getAuth() {
  var authBasedUrl = 'https://test-api.service.hmrc.gov.uk/oauth/token';
  var options = {
    headers: {
      'Accept': 'application/vnd.hmrc.1.0 json',
      "Content-Type": "application/json"
    },
    payload: JSON.stringify({
      client_id: 'RgwU6hvdxxxxxxic6LwIt',
      client_secret: '9e8c9yyyyyyyyyyc2fc2ed9126',
      grant_type: 'client_credentials',
      scope: 'hello'
    })
  }
  var response = UrlFetchApp.fetch(authBasedUrl, options);
  var result = JSON.parse(response.getContentText());

  console.log(result);
}
 

Комментарии:

1. Спасибо, я попытался запустить ваш код, однако появилось другое сообщение об ошибке: «Исключение: запрос не удался для test-api.service.hmrc.gov.uk возвращенный код 400. Усеченный ответ сервера: {«ошибка»:»недопустимый запрос»,»описание_данных ошибок»:»требуется идентификатор клиента»} (используйте опцию muteHttpExceptions для проверки полного ответа)» есть идеи, почему это может быть проблемой? Я установил идентификатор клиента и секрет

2. Я обновил код. Я получил жетон, когда проверял его. Я пропустил тип контента

3. Я запустил код с моим идентификатором клиента и секретом, и он работает, спасибо!

4. Пожалуйста, отметьте ответ. @h-эдвардс