Да, вы не ослышались. В Telegram появилась возможность создать такого бота, который будет писать первым (начинать диалог). Сегодня разберемся как создать такого бота.
Итак, в начале декабря 2021 года, Команда Телеграм выкатила очередное обновление Bot Api. Кроме прочего, в нем добавилась интересная функциональная возможность: бот может первым начинать диалог с пользователем, без нажатия кнопки Старт.
Для того, чтобы бот мог сам начать диалог с пользователем, надо чтобы соблюдалась конкретная последовательность действий:
- Нужно создать закрытую группу в Телеграм. Такую группу, в которую можно зайти только по ссылке. И после нажатия по ссылке должно происходить одобрение администратором.
- Создается бот (силами программиста. Конструкторы тут не помогут), который добавляется в эту группу админом, и ему назначается право одобрения новых заявок в группу.
- Новый пользователь, когда нажимает по ссылке, попадает “в поле зрения бота” как заявка на одобрение.
- Бот должен автоматически принимать эту новую заявку, и писать приветственное сообщение в личку этому пользователю.
Нажатие на пригласительную ссылку как бы и является неким фактом старта бота. После того как бот увидел эту заявку, телеграм начинает считать, что пользователь написал в личку боту. При этом, у пользователя, после вступления, будет отображаться как будто именно бот отправил первое сообщение.
Отложенная отправка сообщений. Блок таймер
А в марте 2022 года в Telegram появилась возможность создавать веб-ботов! Почитать про новую фишку можно по этой ссылке.
Источник: botcreators.ru
Простой Telegram бот на Python, метод getUpdates
Из этой статьи вы узнаете, как с помощью Python можно создать Telegram бота используя для этого библиотеку requests. Этот урок будет полезен для начинающих разработчиков, для тех кто только начал познавать работу протокола HTTP в Python.
Requests — это Python HTTP библиотека, цель которого сделать запросы HTTP проще и удобнее для человека. Requests поможет вам легко разобраться с любой API.
Создаем бота
Для начала нужно создать бота и получить токен, для этого выполним пару простых шагов.
Шаг 3. В ответ мы получили сообщение, где указан токен и ссылка на нашего бота, переходим по ссылке и пишем боту любое сообщение.
Бот готов, сейчас можно переходить к самому интересному.
Telegram API входящие сообщения
Для того что бы получить входящие обновления бота, воспользуемся методом getUpdates . Откроем в новой вкладке браузере ссылку, используя свой полученный ранее токен.
Отправка сообщения Telegram боту в форму ввода и пересылка его через Integromat в чат с закреплением
https://api.telegram.org/bot/getUpdates
В ответ мы должны получить массив объектов, где можно увидеть отправленные нами ранее сообщением боту, в моем случае это «/start» и «Hello» (если ответ пустой, отправьте своему боту еще одно сообщение, и обновите страницу с ссылкой).
Теперь осталось повторить все на Python. Напишем код, где будем отправлять GET запрос, и с помощью полученных данных в ответ (массива данных) научим программу понимать, что боту написали новое сообщение.
Для проверки выведем в консоль уникальный идентификатор пользователя, и его сообщение
import requests import time TOKEN = ‘токен’ URL = ‘https://api.telegram.org/bot’ def get_updates(offset=0): result = requests.get(f’/getUpdates?offset=’).json() return result[‘result’] def run(): update_id = get_updates()[-1][‘update_id’] # Присваиваем ID последнего отправленного сообщения боту while True: time.sleep(2) messages = get_updates(update_id) # Получаем обновления for message in messages: # Если в обновлении есть ID больше чем ID последнего сообщения, значит пришло новое сообщение if update_id < message[‘update_id’]: update_id = message[‘update_id’] # Присваиваем ID последнего отправленного сообщения боту print(f»ID пользователя: , Сообщение: «) if __name__ == ‘__main__’: run()
Telegram API отправить сообщение
Для того, что бы отправлять сообщение от имени бота, существует метод sendMessage .
Откроем в новой вкладке браузера ссылку используя свой токен, и в параметрах укажем:
- chat_id : уникальный id пользователя, что бы бот понял кому именно ответить (в моем случае это 792035400).
- text : Текст самого сообщения
https://api.telegram.org/bot/sendMessage?chat_id=792035400text=’) if __name__ == ‘__main__’: send_message(792035400, ‘Привет, хорошо, а ты как?’)
После каждого запуска программы мы увидим что наш бот отправляет сообщение Привет, хорошо, а ты как? .
Создаем простого телеграм бота
С методами getUpdates, и sendMessage API Telegram мы разобрались, используя свои знания напишем программу которая научит нашего бота отвечать на сообщение.
import requests import time TOKEN = ‘токен’ URL = ‘https://api.telegram.org/bot’ def get_updates(offset=0): result = requests.get(f’/getUpdates?offset=’).json() return result[‘result’] def send_message(chat_id, text): requests.get(f’/sendMessage?chat_id= message[‘update_id’]: update_id = message[‘update_id’] # Присваиваем ID последнего отправленного сообщения боту # Отвечаем тому кто прислал сообщение боту check_message(message[‘message’][‘chat’][‘id’], message[‘message’][‘text’]) if __name__ == ‘__main__’: run()
Теперь наш бот может поприветствовать, и ответить, как у него дела). Скоро я выпушу вторую часть, где покажу как отправлять файлы и выводить настраиваемую клавиатуру (вторая часть).
Дополнительную информацию о методах вы можете получить в документации.
Источник: ramziv.com
Простой способ отправлять сообщения в Telegram
Пару слов о том, как настроить отправку сообщений в телеграм (и при этом не надо программировать, ну, необязательно).
Для данной статьи я создал очередного бота, и даже не буду прятать АПИ ключи, т.к. мне его не жалко. По мере прочтения вы можете использовать его, хотя я вам советую создать своего бота, и не давать АПИ ключи никому.
Создание бота
После этого BotFather ответит вам, что всё ОК, и вернет ключ для API, который потребуется в дальнейшем. Для экспериментов пока что можете взять мой ключ — 515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ.
Подключение
Теперь, в списке контактов найдите созданного вами бота по имени (в моем случае, BablofilDemoBot), и нажмите кнопку start. Это важно, т.к. бот не может сам навязываться к людям.
После этого откройте в браузере вот такую ссылку
(для своего бота замените АПИ ключ на свой, вот так https://api.telegram.org/botAPIAPIAPIAPIAPI/getUpdates). Вы должны увидеть примерно тоже, что и на скриншоте – последнюю активность бота – кто подключился, кто что написал и т.п. Если там пусто, напишите в телеграме боту какую-нибудь чушь и обновите страницу. Ваша итоговая цель – найти chat_id
Я выделил то, что вам нужно найти. ВНИМАНИЕ – если пользуетесь моим ботом, то имейте в виду, что его мог подключить кто угодно, поэтому вы можете найти чужой chat_id – проверяйте, что тут упоминается ваш ник. А лучше заведите отдельного бота) Иначе кто угодно сможет вам писать от имени бота – API ключи-то известны всем.
Отправка сообщения
На этом шаге вы знаете API ключ и chat_id. Осталось только написать сообщение.
Откройте в браузере такую ссылку:
Соответственно, замените API, chat_id и текст сообщения на свои. Я отправляю слово PING как сообщение бота.
https://api.telegram.org/botAPIAPIAPI/sendMessage?chat_id=CHATID»» https://api.telegram.org/bot /sendMessage?chat_id= «».format( API_TOKEN = ‘515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ’, CHAT_ID = ‘303964420’, TEXT = ‘TEST TEST TEST’ ))
Вот и всё… Удачи в написании ботов 🙂
Не забудьте рассказать друзьям об этой статье.
Чтобы поддержать ресурс Bablofil достаточно просто поделиться с друзьями этой статьей в социальных сетях. Каждый репост — это самая высокая оценка качества материала. Спасибо, что читаете этот блог.
Источник: bablofil.ru