16

Исполнение кода в Телеграм чате

Вчера мне пришёл в голову, как мне показалось, очень забавный вопрос, а можно ли превратить Телеграм в REPL, то есть, сделать так, чтобы можно было исполнять код прямо в чате? (Спойлер: да)


Чтобы решить эту задачу мне нужно:

1. Получить сообщение, которое я посылаю, чтобы исполнить код содержащийся в его тексте

2. Исполнить сам код

3. Отправить результат кода обратно в чат


Архитектура будет следующая: я хочу получать вебхуки об исходящих сообщениях в Телеграме на мой сервер, который будет исполнять код и отправлять результат.


Получение текста сообщений


Как получать уведомления об исходящих сообщениях в Телеграме? Для этого я буду пользоваться сервисом TaaS (https://www.t-a-a-s.ru). Таас использует библиотеку TDLib, которая разрабатывается самим Телеграмом, и она позволяет по сути создавать свой собственный клиент, открывая доступ ко множеству функций. Её довольно трудно устанавливать и использовать, но Таас является очень удобной оболочкой и делает использование максимально простым. С помощью него я могу подписаться на вебхуки по исходящим (моим собственным) сообщениям.


Я захожу в Таас, нажимаю кнопку New Client, создаю клиент для своего номера телефона, и создаю подписку на вебхук с помощью метода "Create Subscription", который будет отправлять запросы на мой сервер при каждом новом исходящем сообщении. В поле hookUrl я ввожу адрес своего сервера, trigger - outgoing_message, и api_key моего клиента.

Исполнение кода и отправка обратно в чат


Для исполнения кода я быстро создаю сервер на Heroku. Я пишу на руби, поэтому сделаю сервер на Rails. Мне нужно создать только один action для контроллера, который будет выполнять код из сообщения и отправляет его обратно в чат. Так же я сделаю дополнительный метод tglib который я могу вызывать из кода для дополнительной отправки сообщений в чат, из, скажем, цикла.

Вот собственно и всё! По сути, таким образом вы можете создать собственный клиент Телеграма, который работает одновременно с вашим обычным, но выполняет весьма необычные функции.

Лига программистов

2.2K постов12K подписчика

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Автор поста оценил этот комментарий
а смысл? Можно ж открыть терминал и исполнять код сколько влезет, и интернет не нужен и дополнение есть и т.д.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Просто упражнение, фантазия.

1
Автор поста оценил этот комментарий

Заняло 15 минут и 30 строк на хероку.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

круто!

3
Автор поста оценил этот комментарий

Чот я вообще не понял, нахера городить вот это вот все со сторонними сервисами, исходящими и tdlib, если все решается через bot api.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если вы хотите чтобы код выполнялся просто в диалоге с каким-то пользователем, то через бот api не получится этого сделать

показать ответы
0
Автор поста оценил этот комментарий

щас подтянутся еще товарищи и все вместе будем бить тебя за выполнение произвольного кода на своем сервере

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

:) Это ничего страшного, потому что код могу писать только я сам

показать ответы
2
Автор поста оценил этот комментарий

Inline режим именно для этого и нужен.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Если вы находитесь в чате, в переписке со своим другом, где только двое из вас - бота туда невозможно применить.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества