Telegram driver no funciona
Closed this issue · 16 comments
Después de probar muchas opciones para integrar botman a una aplicación Laravel 9 y sin lograrlo con éxito di con este respositorio.
El driver web funciona pero al intentar conectar el bot con Telegram no está funcionando. ¿Hiciste algún test para ver si respondía bien?
Agradezco tu trabajo!
¡Hola Adolfo!
Gracias por tu interés, sabes que los drivers que he actualizado han sido el web y messenger, si deseas que actualice el de telegram con gusto puedo hacerlo, el error es principalmente que no están actualizados los métodos y clases de la nueva versión de httpkernel de symfony, los dirvers usan la versión anterior de esta librería, pero el fix es simple, mándame un email a amelendez@tribuco.mx para estar en contacto y te doy un update cuando lo tenga, saludos!
Te agradecería que me mantuvieras al tanto!
Saludos!
Hey Adolfo! Ya actualicé la librería, framework, config files y funciona el driver, te comparto la documentación por aquí mañana
Muchas gracias! Muy amable de tu parte!
Saludos!
Buen dia adolfo, ya esta actualizado todo, si gustas dale una leida al readme, cualquier cosa tienes mi email, saludos!
Primero muchas gracias por tomarte el trabajo de actualizar las cosas.
Segundo quería consultarte qué cosas cambian para poder incorporar (o replicar los cambios) del driver de telegram en un proyecto existente que tengo.
Gracias!
Primer test:
git clone (PROJECT)
composer install
Set .env values
serve
Test bot with web driver --> WORKS
Set bot token in .env file
Set telegram webhook to my pc with NGROK
Set throw_http_exceptions true in config/telegram.php
Test bot from telegram chat --> same error as always
Ideas?
[2023-02-05 16:25:16] local.ERROR: Status Code: 500
Description: No description from Telegram
Error Code: No error code from Telegram
Parameters: No parameters from Telegram
URL: https://api.telegram.org/botTELEGRAM-TOKEN-HIDDEN/sendMessage
URL Parameters: Array
(
)Post Parameters: Array
(
[chat_id] => 1583377253
[text] => Version: jalex fixed version
)Headers: Array
(
){"exception":"[object] (BotMan\Drivers\Telegram\Exceptions\TelegramConnectionException(code: 0): Status Code: 500
Description: No description from Telegram
Error Code: No error code from Telegram
Parameters: No parameters from Telegram
URL: https://api.telegram.org/botTELEGRAM-TOKEN-HIDDEN/sendMessage
URL Parameters: Array
(
)Post Parameters: Array
(
[chat_id] => 1583377253
[text] => Version: jalex fixed version
)Headers: Array
(
)at C:\Users\user\Desktop\testjalex\botman-studio-9\vendor\botman\driver-telegram\src\TelegramDriver.php:510)
[stacktrace]
#0 C:\Users\user\Desktop\testjalex\botman-studio-9\vendor\botman\driver-telegram\src\TelegramDriver.php(408): BotMan\Drivers\Telegram\TelegramDriver->postWithExceptionHandling('https://api.tel...', Array, Array)
En tu .env pega el valor de tu token de telegram, de preferencia usa insomnia para configurar el webhook, en el link del readme esta el articulo, antes de correr unit testing prueba el driver usando E2E testing y usa telescope para apoyarte con el debugging, por el output del unit testing (status 500 sin retro) es posible que sea un bug y no tanto un error, me avisas si te fue bien, yo ya pude hacer un bot con telegram usando este repo, saludos!
Tengo el mismo error que al querer utilizar la librería en un proyecto aparte. El webhook está bien seteado porque con la versión vieja del botman-studio funciona el chatbot.
Voy a hacer otro test con laravel 10 a ver qué tal me va.
Según laravel shift la librería funciona en laravel 10 pero de la misma forma que en un proyecto con laravel 9 me da ese error que me es difícil hasta identificar bien qué es lo que falla.
Gracias de todas formas por tomarte el tiempo.
Creo saber entonces qué problema tienes, checa el repositorio en github y entra al directorio de config/botman y copia el fichero telegram.php y pegalo en la misma carpeta en tu código, al cargar la app laravel carga estos ficheros de manera automática y me parece que no está incluida esa configuración en la versión anterior...
El fichero config/botman/telegram.php se carga porque intentando identificar el problema le pasé:
'throw_http_exceptions' => true,
y al hacer el post a telegram utiliza la función que arroja los exceptions que es lo que me da el mensaje de error que puse en el otro mensaje.
De igual manera, habrá que buscar la forma de que Marcel (el creador de esta librería) actualice el código a PHP 8.1, o preferentemente PHP 8.2, si el tiempo me permite haré un re-write de esta implementación para Laravel 10
Encuentro raro que si checkeo tanto Telescope como el log de errores (laravel.log) la respuesta del bot es la correcta, el problema está en el envío. La única otra cosa que encontré mal es que en el caché da "missed" en algunos items, pero más allá de eso no me da ni una pista que me sirva para diagnosticar.
Tengo el server armado con WAMP en mi WIN10, con la versión de botman-studio que usa laravel 5.6 funciona correctamente (tengo que setear para que use PHP 7.4) pero cuando cambio a las versiones nuevas no funciona.
Hagamos lo siguiente, te parece si te armo una distribución pre configurada? Así veremos si es error de OS, para desarrollo yo uso Linux y para development uso el servidor de desarrollo en laravel (artisan)
Me parece bien.
Actualmente tengo en local para desarrollo un win10 con el servidor armado con WAMP.
Sería interesante saber si hay algo mal en el código o si es un error del servidor al procesar algo.
Estas aplicaciones van a terminar funcionando en un server armado con Laravel Forge.