Telegram bot, не работает webhook на Let’s Encrypt SSL
Обсуждение установки и настройки поддерживаемых вебсерверов, а также работы с ними.
6 сообщений • Страница 1 из 1
Telegram bot, не работает webhook на Let’s Encrypt SSL
Сообщение SanekXXX4 » Чт янв 23, 2020 5:56 pm
Не работает бот телеграм, при отправление сообщения молчит, работает только на методе getUpdates. В чем может быть проблема?
При запросе https://api.telegram.org/bot******/setW . /*****.php выдает
При запросе https://api.telegram.org/bot******/getWebhookInfo выдает
Re: Telegram bot, не работает webhook на Let’s Encrypt SSL
Сообщение ninja » Пт янв 24, 2020 2:12 am
«has_custom_certificate»:false
Используйте самоподписной сертификат!
Re: Telegram bot, не работает webhook на Let’s Encrypt SSL
Сообщение SanekXXX4 » Пт янв 24, 2020 5:31 pm
Пт янв 24, 2020 2:12 am
«has_custom_certificate»:false
Используйте самоподписной сертификат!
Простой способ развернуть телеграмм бота с Aiogram + Webhook на хостинг
Устанавливал и другой сертификат который создает brainycp, также не работает( Или нужно делать не инструментами панели?
Re: Telegram bot, не работает webhook на Let’s Encrypt SSL
Сообщение ninja » Сб янв 25, 2020 6:13 pm
( Или нужно делать не инструментами панели?
Я делаю не в панели, но думаю, что не важно как вы создаете, важно, что надо сообщить Telegram, что у вас самоподписной, а не настоящий сертификат иначе он будет проверять его по всей строгости и конечно он не пройдет проверку.
Re: Telegram bot, не работает webhook на Let’s Encrypt SSL
Сообщение ninja » Сб янв 25, 2020 7:13 pm
Как делаю я и у меня все отлично работает на сервере с этой панелью.
Создаю сертификат через консоль
openssl req -newkey rsa:2048 -sha256 -nodes -keyout bot.key -x509 -days 365000 -out bot.pem -subj «/C=UA/ST=City/L=Exp/O=Telegram/CN=tut.vashBOT.domen»
Ложу bot.key и bot.pem в папку сайта, где допустим файл index.php
В панели brainycp перехожу (в режиме пользователя):
Сертификаты -> Управление SSL -> Установка сертификата
Выбрать сертификат
Выберите домен — выбирайте домен где будет бот tut.vashBOT.domen
Выберите ключ — Новый
Выберите сертификат — Новый
Данные сертификата
Сертификат (CRT) — сюда вставить содержимое созданного файла bot.pem
Закрытый ключ (KEY) — сюда вставить содержимое созданного файла bot.key
Нажать кнопку Установить Сертификат
В консоле cd /папка где лежат файлы bot.pem , bot.key
Выполнить:
Тут соответственно не забудьте исправить на свои:
tut.vashBOT.domen
tut.vashBOT.domen/bot.php
botVashapi:api
Далее пишите команды боту, должен ответить
Источник: community.brainycp.com
Telegram. Не приходит webhook по callback-кнопкам
Если более расширено, то webhook установлен, по нему приходят сообщения, написанные в бота. Посмотрел логи сервера, запросов к адресу webhook’а в момент нажатия нет, ошибок тоже нет. При использовании метода /getWebhookInfo — ошибок нет, последний отправленный webhook это message.
Python Telegram Бот На WebHook | Как Создать И Использовать Вебхуки Для Отправки Уведомлений
Кнопка передается подобным массивом:
Единственное, с чем это может быть связано(что нашел в интернете), с тем, что домен по ssllabs.com имеет рейтинг B, но тогда странно, что webhook приходит по сообщению в бота.
В интернете не удалось найти решение, может кто-то сталкивался с такой проблемой?
Ответы (1 шт):
Странно, что не смог зайти под этим пользователем(под которым писал вопрос).
Нашел решение для себя. При регистрации webhook’а для бота раньше я просто указывал ссылку на обработчик, то есть, общий запрос был вида:
* Preparing request to https://api.telegram.org/bot/setWebhook * Current time is 2021-04-03T20:25:23.173Z * Using libcurl/7.73.0-DEV OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.9 WinIDN libssh2/1.9.0_DEV nghttp2/1.41.0 * Using default HTTP version * Disable timeout * Enable automatic URL encoding * Enable SSL validation * Enable cookie sending with jar of 7 cookies * Found bundle for host api.telegram.org: 0x293aad18c60 [serially] * Can not multiplex, even if we wanted to! * Re-using existing connection! (#0) with host api.telegram.org * Connected to api.telegram.org (149.154.167.220) port 443 (#0) > POST /bot/setWebhook HTTP/1.1 > Host: api.telegram.org > User-Agent: insomnia/2021.2.2 > Content-Type: application/json > Accept: */* > Content-Length: 94 | < | «url»: «https://example.com/api/» | >
В этом случае, нажатие на callback-кнопку не приводило к отправке webhook’а
Затем я поменял немного запрос, передавая в него информацию о тех изменения, которые хочу получать в свой обработчик(массив «allowed_updates»), то есть запрос изменился на такой:
* Preparing request to https://api.telegram.org/bot/setWebhook * Current time is 2021-04-03T20:30:28.273Z * Using libcurl/7.73.0-DEV OpenSSL/1.1.1g zlib/1.2.11 brotli/1.0.9 WinIDN libssh2/1.9.0_DEV nghttp2/1.41.0 * Using default HTTP version * Disable timeout * Enable automatic URL encoding * Enable SSL validation * Enable cookie sending with jar of 7 cookies * Found bundle for host api.telegram.org: 0x293aad18c60 [serially] * Can not multiplex, even if we wanted to! * Re-using existing connection! (#0) with host api.telegram.org * Connected to api.telegram.org (149.154.167.220) port 443 (#0) > POST /bot/setWebhook HTTP/1.1 > Host: api.telegram.org > User-Agent: insomnia/2021.2.2 > Content-Type: application/json > Accept: */* > Content-Length: 94 | < | «url»: «https://example.com/api/», | «allowed_updates»: [«message»,»callback_query»] | >
После передачи дополнительного параметра «allowed_updates», нажатие на callback-кнопку стало приходить в мой обработчик.
Дополнительно внесу комментарий, что в документации по методу /setwebhook сказано, что при простой передаче url, webhook должен передаваться по всем событиям, кроме «chat_member», но видимо что-то поменялось, а в документации не отразили.
Источник: husl.ru
телеграмма webhook не работает (бот)
У меня проблема с веб-хуком! У меня есть форма для выдачи токена для моего бота-телеграммы и ответа на мой бот. Согласно вставке токена в форму. Когда я использую метод get update, все хорошо, но когда я использую веб-хук, не работает! Мой URL имеет сертификат SS l, веб-хук установлен.
- если ваш контроллер имеет значение true, вы должны убедиться, что сообщение Webhook отправлено Telegram. Вы можете скачать ngrok и создайте прокси https для вашего локального хоста.
Используйте эту команду в ngrok:
ngrok http 20201
20201 — ваш локальный порт (localhost: 20201).
Теперь ngrok даст вам ссылку https, и вы должны установить эту ссылку в качестве своего телеграмма (как вы сказали).
В этот момент, если telegram отправляет сообщение для вашего бота через webhook, вы можете отладить его на локальном хосте.
- Наконец, если вы не нашли проблему, вы должны прочитать Патентное руководство Марвина по всем вещам Webhook чтобы проверить все требования еще раз.
- Поддерживает IPv4, IPv6 в настоящее время не поддерживается для веб-хуков.
- Принимает входящие сообщения POST от 149.154.167.197-233 через порт 443,80,88 или 8443.
- Умеет обрабатывать TLS1.0 + HTTPS-трафик.
- Предоставляет поддерживаемый, не подстановочный, проверенный или самоподписанный сертификат.
- Использует CN или SAN., Который соответствует домену, который вы указали при настройке.
- Поставляет все промежуточные сертификаты для завершения цепочки проверки.
для тех, кому нужно запустить / отладить бот telegram на localhost, возможно, вы можете использовать этот пакет npm.
просто установите его как глобальный пакет на вашем компьютере, используя
npm install -g telehook
Источник: web-answers.ru