Google Script Telegram webhook How-to

Начало: Пишем Telegram бота на Google script

Читать полностью оригинал: https://habr.com/post/326220/

Цели, задачи, оправдания безумства.

Вопросы, на которые нужно получить ответ «да»

  • Можно ли создать Telegram бота в Google Script?
  • Можно ли бесплатно использовать API Google Translate без регистрации и SMS?
  • Можно ли сделать онлайн инструмент без использования хостинга?

Недостатки и неприятные особенности

Естественно, выбранные «инструменты» реализации бота накладывают немало ограничений.

  • Во-первых, бот будет отвечать на сообщения с большой задержкой (до минуты).
  • Во-вторых, несмотря на то, что Google Translate используется внутри Google Script, ограничения по количеству запросов в секунду и общему их количеству в сутки все же есть. По понятным причинам возможность использования web hook отсутствует.
Эксперимент показал, что можно без проблем связать сервисы Google с ботом Telegram в личных целях, автоматизировать сбор информации и получать ее весьма оперативно. Можно без проблем написать парсер какого-нибудь авито и отправлять новые объявления по интересующем запросу в телеграм. В этом случае даже скорость ответа бота на сообщения не играет никакой существенной роли.

UPD: Pylorama в своем комментарии рассказал о том, как сделать WebHook.

Google Script Telegram webhook How-to:

1. Реализуйте в скрипте метод doPost() для обработки пост запросов.

2. Опубликуйте google script как веб приложение с доступом для всех.

3. Используя API метод setWebhook укажите адрес скрипта.

Пример

Создаем скрипт с методом doPost(e)

function doPost(e) {
  var botId = 'TELEGRAM_BOT_API_KEY';
  var content = JSON.parse(e.postData.contents);
  var message = content.message;
  var text = message.text;
  
  //Обрабатываем запрос нужным образом, например:

  UrlFetchApp.fetch('https://api.telegram.org/bot' + botId + "/sendMessage", {
      'method': 'post',
      'payload': {
          chat_id: message.chat.id,
          text: 'It Works!'
      }
  });

  //возвращаем пустой документ, главное передать телеграму 200 response code.
  return HtmlService.createHtmlOutput();
}

Публикуем как веб приложение и получаем URI скрипта. Теперь можно дописать и вызвать функцию для установки webhook.

function setWebhook() {
  var botId = 'TELEGRAM_BOT_API_KEY';
  var scriptUrl = 'YOUR_SCRIPT_URI';
  UrlFetchApp.fetch('https://api.telegram.org/bot' + botId + "/setWebhook?url=" + scriptUrl);
}

Документация по Web Apps https://developers.google.com/apps-script/guides/web

Pylorama 27.04.17 в 12:22

P.S. Я тут погуглил, оказывается, все уже реализовано: 12

ilyaplot 10.05.17 в 13:28

По первой ссылке не особо много полезного, да и дата публикации позже моей. Я написал пост далеко не сразу. А за вторую спасибо.

oshliaer 27.03.18 в 13:11

Бот на хуках gist.github.com/oshliaer/77ccc68599e7b0fea39f

Источник


Google Script Telegram webhook How-to

https://teletype.in/@botshares/rkrzIG7b7