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

June 16, 2018
by Andry B
84

Прокси

Поднимаем SOCKS прокси для Telegram

https://m.habr.com/post/353758/comments/


Попробовал найти что-то хорошее/асинхронное, но не удалось. Поэтому по-быстрому написал на питоне свой: https://github.com/alexbers/tgsocksproxy. Он потребляет мало памяти, одновременно держит очень много пользователей и просто поднимается.

Работаю под ним уже сутки, полёт нормальный.

+1mihmig 21.04.18 в 14:32

Сложно ли будет Вам «прикрутить» БД для ведения списка пользователей?

0alexbers 22.04.18 в 12:52

В самом простом виде база данных пользователей прикручивается очень просто, примерно так: https://pastebin.com/4v7xJdXL.


Весь прокси-сервер по-сути состоит из одного файла, размером ~250 строк, поэтому добавлять туда новую функциональность, в соотвествии со своими потребностями (напр. логирование, интеграция с ldap, статистика, другие разрешённые адреса проксирования) должно быть несложно. Сейчас он заточен на максимально простое развёртывание и использование.

0alexbers 24.04.18 в 02:06

По многочисленным просьбам применил этот патч к основной ветке. Ещё добавил вывод статистики раз в 10 минут. 

Её формат примерно такой:

Stats for 23.04.2018 23:01:22

tg: 4 connects (3 current), 0.00 MB

tg2: 0 connects (0 current), 0.00 MB

May 3, 2018
by Andry B
0
64
Show more