Для увлекательных разговоров чат-бот Telergam действительно полезен. В этом уроке мы узнаем, как создать чат-бота Telegram и использовать его для подготовки текстовых сообщений с подробными ответами.
Шаги по созданию бота Telegram
Следуйте приведенным ниже инструкциям, чтобы создать чат-бот Telegram.
Шаг 1:
Откройте свое приложение и в строке поиска введите «BotFather» и нажмите «Запустить».
Шаг 2:
Введите «/newbot».
Шаг 3:
Введите уникальное имя бота.
Шаг 4:
Теперь введите уникальное имя пользователя для своего бота.
Помните: имя пользователя должно заканчиваться на «bot». Например, «Tetris_bot» или «Tetrisbot».
Шаг 5:
После указания уникального имени пользователя вы получите сообщение, подобное приведенному ниже. Оно содержит токен для доступа к HTTP API. Обеспечьте безопасность своего токена и храните его в безопасном месте.
Шаг 6:
Создайте фляжное приложение для ответа веб-перехватчика.
Прежде всего, вам нужно будет установить python и flask на свой компьютер.
pip install Flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<h1>Welcome!</h1>"
if __name__ == '__main__':
app.run(threaded=True)
Запустите этот код, чтобы проверить, правильно ли работает фляжное приложение. Когда вы запустите код, вы получите ссылку на сервер, например «http://127.0.0.1:5000/». Нажмите на эту ссылку, и вы будете перенаправлены на веб-страницу, где увидите ответ «Добро пожаловать!»
Шаг 7:
Скачайте NGROK и введите в нем команду «ngrok http 5000», после выполнения этой команды вы получите ссылки. Из них скопируйте ссылку HTTPS и вставьте ее в свой браузер. Вы увидите ответ «Добро пожаловать!» так же, как и в предыдущем шаге.
Шаг 8:
Теперь вам нужно установить веб-хук для телеграмм-бота. Вы можете сделать это, запустив ссылку в браузере.
https://api.telegram.org/bot<Your Bot Token>/setWebhook?url=<URL, который вы получили от NGROK>
После запуска ссылки в веб-браузере вы получите ответ, показанный на изображении ниже:
Шаг 9:
Теперь нам нужно будет получить ответ JSON от бота на любой текст, который мы пишем боту.
Откройте VS Code, добавьте следующий код и запустите его по той же ссылке Ngrok, по которой вы запускали предыдущий код.
from flask import Flask
from flask import request
from flask import Response
import requests
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
msg = request.get_json()
print(msg)
return Response('ok', status=200)
else:
return "<h1>Welcome!</h1>"
if __name__ == '__main__':
app.run(debug=True)
В BotFather, где вы получаете токен для своего чат-бота Telegram, вы также можете указать URL-адрес для перенаправления на своего бота Telegram.
После этого нажмите Start Bot, чтобы начать чат с ботом. Затем введите любое сообщение, которое вы хотите, например, «тестовый бот» или что угодно.
После написания «тестового бота» вашему боту теперь перейдите к Vscode и загрузите следующий JSON в свой терминал:
Здесь мы видим, что сообщение, которое мы написали боту, мы можем получить на бэкэнде в виде текста.
Шаг 10:
Мы напишем код, чтобы получить ответ на сообщение «Привет» от пользователя, и если вменится что-либо, кроме «привет», тогда ответ сделаем «от веб-перехватчика».
Вы также можете добавить дополнительный параметр в сообщение отправки. Если это нужно, прочитайте документацию.
from flask import Flask
from flask import request
from flask import Response
import requests
TOKEN = "<Your Bot Token>"
app = Flask(__name__)
def parse_message(message):
print("message-->",message)
chat_id = message['message']['chat']['id']
txt = message['message']['text']
print("chat_id-->", chat_id)
print("txt-->", txt)
return chat_id,txt
def tel_send_message(chat_id, text):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
payload = {
'chat_id': chat_id,
'text': text
}
r = requests.post(url,json=payload)
return r
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
msg = request.get_json()
chat_id,txt = parse_message(msg)
if txt == "hi":
tel_send_message(chat_id,"Hello!")
else:
tel_send_message(chat_id,'from webhook')
return Response('ok', status=200)
else:
return "<h1>Welcome!</h1>"
if __name__ == '__main__':
app.run(debug=True)