Как установить вебхук Monobank в Google Apps Script

Создаем новую Google Таблицу: https://docs.google.com/spreadsheets/u/0/.

Переходим РасширенияApps Script и делаем развертывание веб-приложения. Узнать подробнее о развертывании веб-приложения →.

После развертывания копируем ссылку URL веб-приложения и определяем ее в переменной webAppUrl.

Google Apps Script
const webAppUrl = "https://script.google.com/macros/s/AKfycbyAL0_IAKI9kq27if_W4cMH9tCSoN0J8hAcX-5nYYvBuPiSQ-LNNa2ot7-CYTkcVt5OFQ/exec";

API Monobank

Получаем токен по ссылке: https://api.monobank.ua/ и определяем его в переменной tokenMono. Документация по работе с API Monobank: https://api.monobank.ua/docs/.

Google Apps Script
const tokenMono = "uiu-hQUaQlv9TRSm9T9ibgKuo_yaJVQKFtY7A1R-MHhc";

Устанавливаем вебхук

Создаем функцию setWebhookMono() и запускаем ее.

Google Apps Script
function setWebhookMono() {
  const options = {
    method: 'post',
    headers: {
      'X-Token': tokenMono, // В headers передаем токен Monobank
    },
    payload: JSON.stringify({
      "webHookUrl": webAppUrl // В payload передаем url веб-приложения
    })
  };

  let response = UrlFetchApp.fetch('https://api.monobank.ua/personal/webhook', options);
  console.log(response.getContentText()); // "{"status":"ok"}"
}

Готово, вебхук установлен! Наше веб-приложение готово принимать обновления от монобанка.

Для підтвердження коректності наданої адреси, на неї надсилається GET-запит. Сервер має відповісти строго HTTP статус-кодом 200, і ніяким іншим. Якщо валідацію пройдено, на задану адресу починають надсилатися POST запити з подіями

Для подтверждения URL нашего веб-приложения, создадим функцию doGet(e).

Google Apps Script
function doGet(e) {
  const result = {
    'statusCode': 200,
  }
  return ContentService.createTextOutput(JSON.stringify(result))
}