Простейший Telegram-бот, который приветствует пользователя и повторяет его сообщения.
Когда пользователь нажимает команду /start, бот приветствует его, а затем каждое текстовое сообщение пользователя повторяет обратно. Это лучшая отправная точка для изучения структуры Telegram-бота.
Выполните эти шаги по порядку, чтобы бот запустился на вашей системе или сервере.
Это тот же код, что и в ZIP-файле. Можете скопировать прямо отсюда. Только не забудьте заменить значение TOKEN на токен вашего бота.
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Приветственный Telegram-бот | Создано Filtor (filtori.com)
# ------------------------------------------------------------
# Это простейший возможный пример бота:
# - на команду /start отправляет приветственное сообщение
# - каждое текстовое сообщение пользователя отправляет обратно (echo)
# Написан только с библиотекой requests и не имеет других зависимостей.
#
# Замечание: Telegram-бот должен запускаться на сервере,
# имеющем доступ к api.telegram.org.
#
# Полное руководство с иллюстрациями:
# https://filtori.com/tj/telegram-bot-source/welcome-bot/
# Нужна профессиональная и индивидуальная версия? Позвоните: +98 912 287 4862
# Или напишите нам в Telegram: https://t.me/filtori
# ------------------------------------------------------------
import time
import requests
# 1) Получите токен бота у @BotFather в Telegram и вставьте сюда.
TOKEN = "ВСТАВЬТЕ_ТОКЕН_ВАШЕГО_БОТА"
# Базовый адрес API Telegram
BASE = f"https://api.telegram.org/bot{TOKEN}"
def send_message(chat_id, text):
"""Отправка текстового сообщения пользователю."""
url = f"{BASE}/sendMessage"
data = {"chat_id": chat_id, "text": text}
try:
requests.post(url, json=data, timeout=15)
except requests.RequestException as error:
print("Ошибка отправки сообщения:", error)
def get_updates(offset):
"""Получение новых сообщений методом long polling."""
url = f"{BASE}/getUpdates"
params = {"offset": offset, "timeout": 30}
try:
response = requests.get(url, params=params, timeout=40)
return response.json()
except requests.RequestException as error:
print("Ошибка получения сообщений:", error)
return {"ok": False, "result": []}
def main():
print("Приветственный бот Filtor запущен... (для остановки нажмите Ctrl+C)")
offset = 0 # номер последнего обработанного обновления
while True:
updates = get_updates(offset)
if not updates.get("ok"):
time.sleep(2) # если была ошибка, немного подождите и повторите
continue
for update in updates.get("result", []):
offset = update["update_id"] + 1
message = update.get("message")
if not message:
continue
chat_id = message["chat"]["id"]
text = message.get("text", "")
if text == "/start":
send_message(
chat_id,
"Привет 👋 Добро пожаловать в нашего бота!\n"
"Что бы вы ни написали, я отправлю это обратно.\n"
"Этот бот создан с ❤️ командой Filtor: filtori.com",
)
elif text:
send_message(chat_id, f"Вы сказали: {text}")
time.sleep(0.5)
if __name__ == "__main__":
main()
Да, этот исходник полностью бесплатен, и вы можете скачать и использовать его без регистрации.
Нужны только Python и библиотека requests. Токен бота вы получаете у BotFather в Telegram.
Да, достаточно отредактировать текст внутри функции send_message в файле bot.py.
Не нужно разбираться самому. Команда Filtor установит, настроит и подключит этого бота к вашему бизнесу.