Как при нажатии на кнопку на сайте заставить бота отправлять текст в телеграм?

Принцип работы таков: на сайте находится кнопка для "вызова сотрудника", когда человек на неё нажимает, бот в телеграм должен отправить сообщение о том, что поступил вызов с такой-то локации. Везде туторы на отправку формы, а нужна именно связь "нажаите кнопки -> текст из кода в чат" (Сайт на html, тг-бот на python)


Ответы (1 шт):

Автор решения: Nymos

Для реализации твоей задумки, я думаю тебе поможет библиотека flask. Простыми словами, Flask - это фреймворк (набор инструментов и правил), который помогает создавать веб-приложения с использованием языка программирования Python. Flask делает процесс создания веб-сайтов более удобным, предоставляя готовые инструменты для обработки запросов от пользователей и отправки им ответов. Если ты хочешь узнать побольше о Flask, то можешь почитать данную статью:https://ru.hexlet.io/blog/posts/chto-takoe-flask-i-kak-na-nem-bystro-napisat-prostoy-sayt

  1. Для начала надо импортировать необходимые модули:
from flask import Flask, request
from telegram import Bot
  1. Далее создаем объекты Flask и Bot, используя токен твоего бота:
app = Flask(__name__)
bot = Bot(token='YOUR_TELEGRAM_BOT_TOKEN')

3.Создаем маршрут, который будет обрабатывать нажатие кнопки на твоем сайте:

@app.route('/button_click', methods=['POST'])
def handle_button_click():
    # Получите данные из запроса, например, текст сообщения
    message_text = request.form.get('message_text')

    # Отправьте сообщение в чат Telegram
    bot.send_message(chat_id='YOUR_CHAT_ID', text=message_text)

    return 'OK'
  1. Осталось только запустить веб-сервер Flask:
if __name__ == '__main__':
    app.run(debug=True)

Все, с python покончено, осталось только создать кнопки, которые при нажатии отправляли запрос. Я напишу свой код, но ты можешь его изменить для своих нужд:

<form action="http://your-server-address/button_click" method="post">
    <input type="text" name="message_text" value="Текст для отправки в чат Telegram">
    <button type="submit">Вызвать сотрудника</button>
</form>
→ Ссылка