Создаем новую Google Таблицу: https://docs.google.com/spreadsheets/u/0/.
Переходим Расширения
→ Apps Script
и делаем развертывание веб-приложения. Узнать подробнее о развертывании веб-приложения →.
После развертывания копируем ссылку URL веб-приложения и определяем ее в переменной webAppUrl
.
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/.
const tokenMono = "uiu-hQUaQlv9TRSm9T9ibgKuo_yaJVQKFtY7A1R-MHhc";
Устанавливаем вебхук
Создаем функцию setWebhookMono()
и запускаем ее.
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).
function doGet(e) {
const result = {
'statusCode': 200,
}
return ContentService.createTextOutput(JSON.stringify(result))
}