Почему не работает, телеграм вебхук с контроллером Yii2?
Всем привет. Наверняка кто-то уже сталкивался с проблемой. Прошу поделиться.
Почему телеграм webhook работает только со ссылкой на обработчик, который находится в корне сайта. С ним проблем нет, приходит все, что отправишь боту. А если указать ссылку на контроллер, то не работает.
Если что: enableCsrfValidation = false;
В конфиге прописал разрешение для контроллера:
|
1 |
[ 'class' => 'yiiwebUrlRule', 'pattern' => 'bot', 'route' => 'bot/bot', 'verb' => 'POST, GET' ], |
Какие еще ему нужны разрешения?
Ссылка на контроллер такого вида: https://site.ru/bot/bot
Дополнительно:
Содержание
и как определили что не работает?
и как определили что не работает?
|
1 |
'REMOTE_PORT' => '53454' 'REDIRECT_URL' => '/index.php' 'REDIRECT_QUERY_STRING' => '/web/bot/bot' 'GATEWAY_INTERFACE' => 'CGI/1.1' 'SERVER_PROTOCOL' => 'HTTP/1.0' 'REQUEST_METHOD' => 'POST' 'QUERY_STRING' => '/web/bot/bot' 'REQUEST_URI' => '/bot/bot' 'SCRIPT_NAME' => '/frontend/web/index.php' 'PHP_SELF' => '/frontend/web/index.php' 'REQUEST_TIME_FLOAT' => 1692212556.4972 'REQUEST_TIME' => 1692212556 ] |
Сделайте аналог запроса через postman. Это довольно быстрое решение.
Сделайте запись всех запросов raw/post/get на контроллер в базу данных (я именно так и сделал, удобно очень).
Посмотрите логи веб сервера.
Может у вас тупо сервер фигово настроен, и вы вините бота.
Если нет - проблема в боте, если есть - проблема в ю. Смотришь лог ошибок, так как вряд ли что-то "не работает" просто так.
|
1 |
91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:42 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:43 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:44 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:44 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:44 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:44 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" 91.108.6.102 - - [17/Aug/2023:21:06:44 +0400] "POST /bot/bot HTTP/1.0" 200 166 "-" "-" |
Смотришь лог ошибок, так как вряд ли что-то "не работает" просто так.
"Руками" этот урл открывается? Там же разрешен гет, открой да проверь что там происходит. Логи смотри, что за ошибки вываливаются.
Ответы:
если работает с файлом корне то каие проблемы?
может контролер авторизацмию требует или еще что
- Нужно делать запросы к БД средствами Yii. Из корня этого не сделать.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для того чтобы установить и настроить телеграм вебхук с контроллером Yii2, необходимо выполнить ряд шагов. Наиболее распространенной причиной неработоспособности вебхука является неправильная настройка или несоответствие параметров.
Ниже приведены шаги, которые могут помочь вам разобраться с проблемой:
1. Убедитесь, что у вас установлен composer, который используется для установки зависимостей Yii2. Если composer не установлен, его можно скачать с официального сайта и установить.
2. Создайте контроллер, который будет обрабатывать запросы от телеграм бота. Убедитесь, что ваш контроллер наследуется от yii\web\Controller.
3. В контроллере определите метод действия, который будет обрабатывать входящие запросы от телеграм. Например:
4. Зарегистрируйте маршрут для вашего контроллера в файле конфигурации приложения (config/web.php). Например:
5. Убедитесь, что у вас есть SSL-сертификат для вашего сайта, так как телеграм требует использование HTTPS для вебхуков.
6. Наконец, установите вебхук, используя API телеграм, указав URL вашего контроллера. Например:
Если после выполнения всех этих шагов вебхук все еще не работает, рекомендуется проверить логи ошибок на сервере, чтобы узнать возможные причины сбоя. Также полезно проверить документацию телеграм и Yii2 для более подробной информации о настройке вебхуков.