404 усеченный ответ сервера на Apps Script Bot - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь поработать над чат-ботом для Hangouts, который запускает функцию каждый день и отправляет сообщение. Я начал с шаблона на сайте разработчиков Google, но при получении URL-адреса я получаю сообщение об ошибке 404 Усеченный сервер.

Ошибка:

Truncated server response: <h1>Not Found</h1> <h2>Error 404</h2>

Вот код:

function onTrigger() {
  var spaceIds = PropertiesService.getScriptProperties()
      .getKeys();
  var message = { 'text': 'Hi! It\'s now ' + (new Date()) };
  for (var i = 0; i < spaceIds.length; ++i) {
    postMessage(spaceIds[i], message);
  }
}

var SCOPE = 'https://www.googleapis.com/auth/chat.bot';
// The values below are copied from the JSON file downloaded upon
// service account creation.
var SERVICE_ACCOUNT_PRIVATE_KEY = "-----BEGIN PRIVATE KEY---- bla bla bla---END PRIVATE KEY-----\n";
var SERVICE_ACCOUNT_EMAIL = "blablabla";

//key and email deleted here for safety reasons.

// Posts a message into the given space ID via the API, using
// service account authentication.
function postMessage(spaceId, message) {

  var service = OAuth2.createService('chat')
      .setTokenUrl('https://accounts.google.com/o/oauth2/token')
      .setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
      .setClientId(SERVICE_ACCOUNT_EMAIL)
      .setPropertyStore(PropertiesService.getUserProperties())
      .setScope(SCOPE);
  if (!service.hasAccess()) {
    Logger.log('Authentication error: %s', service.getLastError());
    return;
  }
  var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
  UrlFetchApp.fetch(url, {
    method: 'post',
    headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
    contentType: 'application/json',
    payload: JSON.stringify(message),
  });event.type == "ADDED_TO_SPACE"
}

Любая помощь будет оценена.

Заранее спасибо. Marcos

1 Ответ

2 голосов
/ 20 января 2020

Ответ:

URL-адрес для создания сообщения в пространстве необходимо указать в виде spaces/*, где * - это идентификатор пространства.

Исправление:

Вам необходимо изменить свой URL в соответствии с документацией:

var url = 'https://chat.googleapis.com/v1/space/' + spaceId + '/messages';

Ссылки:

...