Bot happens. Telegram bot + Google Sheets (on webhooks)

Eugeny Namokonov
Aug 20, 2018 · 4 min read

Какой у нас план:


Создаем нового бота в Telegram

Вася на вебхуках :)
главное — не ошибиться в буквах, а то Вася обидится
684873979:AAFWxHSV8QWoZUpiA9Z18EAyDHgLvrpjdkA

Скрипт, скрипт, скрипт!


Код нашего скрипта можно разделить на три блока:

function doPost(e) {
// получаем сигнал от бота
var update = JSON.parse(e.postData.contents);

// проверяем тип полученного, нам нужно только "сообщение"
if (update.hasOwnProperty('message')) {
var msg = update.message;
var chatId = msg.chat.id;

// проверяем, является ли сообщение командой к боту
if (msg.hasOwnProperty('entities') && msg.entities[0].type == 'bot_command') {

// проверяем на название команды - /lastpost
if (msg.text == '/lastpost') {
// если все проверки пройдены - запускаем код, который ниже, 
// открываем оглавление нашего канала

var sh = SpreadsheetApp.
openById('1u0aRlwb0rQHbjE9avbgCqIJSQ3EvPfTxT-h54jTQh8I').getSheets()[0]

// достает последний пост
var lastpost = sheet.getRange(sheet.getLastRow(), 1, 1, 3).getValues()[0]
var message = ' <strong>'+lastpost[1] + '</strong> \n' + lastpost[2]
//формируем сообщение
var payload = {
'method': 'sendMessage',
'chat_id': String(chatId),
'text': message,
'parse_mode': 'HTML'
}
var data = {
"method": "post",
"payload": payload
}

// и отправляем его боту (замените токен API на свой)
var API_TOKEN = '684873979:AAFWxHSV8QWoZUpiA9Z18EAyDHgLvrpjdkA'
UrlFetchApp.fetch('https://api.telegram.org/bot' + API_TOKEN + '/', data);

Регистрация вебхука.

https://api.telegram.org/bot684873979:AAFWxHSV8QWoZUpiA9Z18EAyDHgLvrpjdkA/setWebHook?url=https://script.google.com/macros/s/AKfycbxdQb6Ig11wfyzubEX2kEdCz-ECuHK35nR8ElQM6SQWLcN8u9oq/exec 


Thanks to Renat Shagabutdinov

Eugeny Namokonov

Written by

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade