Ok, ho risolto questo problema.
Il plugin bridge è ora compatibile con l’ultima versione di discourse testata e superata.
Non vedo l’ora che supporti QQ in seguito
Per quanto ho capito dagli ultimi messaggi nell’argomento: il plugin funziona. Potreste dirmi se questa mia supposizione è corretta?
Posso chiedere se questo plugin funziona con i temi di Telegram (sezioni chat)?
Grazie mille per il vostro lavoro
Benvenuto in Meta ![]()
Gli ultimi post sono stati scritti prima che avvenisse l’ultima modifica al primo post, dove è stato aggiunto il tag broken.
Quindi, mi aspetterei che sia ancora rotto.
Sono lieto di annunciare che questo plugin è ora di nuovo compatibile con l’ultima versione di Discourse ![]()
Adoro questo. Non uso Telegram, ma adoro l’opportunità che questo progetto ci permetterà finalmente di integrarci con Matrix <3
È possibile ottenere i log del plugin? @Lhc_fl
Sto cercando di capire perché funziona solo in un modo (Discourse → Telegram). Il bot ovviamente ha il permesso di accedere ai messaggi del gruppo. Non ci sono log apparenti nella console ![]()
Modifica: stavo cercando di risolvere questo problema e apparentemente è praticamente impossibile ottenere log adeguati in produzione.
Nemmeno errori o avvisi relativi al plugin vengono registrati in production.log / production_error.log.
Sospetto un problema relativo ai webhook e, a quanto pare, il plugin non viene disattivato in caso di errori?
Dato che funziona in un modo, le credenziali fornite sono sicuramente corrette. Se qualcuno ha un’idea su come ottenere i log scritti dal plugin, per favore me lo faccia sapere.
Sta solo sopprimendo INFO e DEBUG, sono abbastanza sicuro che Rails.logger.error lascerà log di errore in produzione
Altri log, per progettazione, non dovrebbero apparire in produzione.
Ho scritto questo plugin molto tempo fa, forse dovrei controllare la sua logica webhook.
Prova ad accedere a questo URL nel tuo browser e vedi qual è l’output?
https://api.telegram.org/bot{token}/setWebhook?url=https://your.discourse.site/chat-bridge/telegram/hook/123456
Sostituisci {token} con il token del tuo bot.
Se il webhook è configurato correttamente, dovrebbe ricevere un messaggio “ok”.
Sì, posso confermare che questo funziona:
{"ok":true,"result":true,"description":"Webhook was set"}
È strano. E se la creazione del messaggio fallisce, il log degli errori verrà stampato qui, dovresti essere in grado di vederlo su https://your.discourse.site/logs
Potrebbe davvero essere un problema di permessi? Se rispondi direttamente al messaggio bridge creato dal bot di Telegram, riuscirà?
Sto vedendo alcuni log relativi al modulo in /logs:
[Discourse -> Telegram] Fallito in chat_message_created:
Ispezione dell'oggetto risultato di ChatBridgeModule::Provider::Telegram::Services::HandleDiscourseMessage:
[1/8] [params] default (0.0555 ms) ✅
[2/8] [model] bot (0.0178 ms) ✅
[3/8] [step] ensure_bot_valid ❌
(altri 5 passaggi non mostrati poiché il flusso di esecuzione si è interrotto prima di raggiungerli)
Perché è fallito:
INVALID_BOT
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'
/var/www/discourse/plugins/discourse-chat-bridge/lib/chat_bridge_module/provider/telegram/bridge.rb:51:in `block (3 levels) in <main>'
/var/www/discourse/lib/scheduler/defer.rb:125:in `block in do_work'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:119:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:105:in `block (2 levels) in start_thread'
Ma questo è di ieri e non si è ripetuto in seguito, quindi presumo che avesse a che fare con l’aggiunta del bot e il non soddisfacimento di tutti i requisiti. Dopodiché, nessun altro log del plugin bridge. A meno che, ovviamente, ciò non abbia causato il mancato funzionamento in seguito ![]()
No, non funziona.
Mi chiedo se sia possibile esaminare il segreto creato dal plugin, poiché ciò consentirebbe la creazione manuale?
Ho appena notato una cosa mentre guardavo i log di Nginx (poiché la chiamata webhook deve avvenire qui)
[26/Jan/2025:12:05:39 +0000] "forum.xyz.org" 91.108.5.109 "POST /chat-bridge/telegram/hook/123456 HTTP/1.1" "-" "chat_bridge_module/telegram_webhook/hook" 403 5865 "-" 0.009 0.010 "-" "-" "-" "-" "-" "-" "-" "-"
Quello è il webhook che ho creato manualmente in precedenza, giusto?
… e siamo un passo avanti. Ho impostato manualmente il percorso del segreto tramite la console rails e ho adattato manualmente il webhook. La richiesta POST a Discourse ora ha successo. E ora c’è un errore effettivo:
/var/www/discourse/plugins/discourse-chat-bridge/lib/chat_bridge_module/provider/telegram/services/handle_tg_message.rb:110:in `message_creation_succeed'
/var/www/discourse/lib/service/base.rb:156:in `instance_exec'
/var/www/discourse/lib/service/base.rb:156:in `run_step'
/var/www/discourse/lib/service/base.rb:199:in `run_step'
/var/www/discourse/lib/service/base.rb:139:in `block in call'
/var/www/discourse/lib/service/base.rb:165:in `with_runtime'
/var/www/discourse/lib/service/base.rb:139:in `call'
/var/www/discourse/lib/service/base.rb:457:in `block in run!'
/var/www/discourse/lib/service/base.rb:457:in `each'
/var/www/discourse/lib/service/base.rb:457:in `run!'
/var/www/discourse/lib/service/base.rb:450:in `run'
internal:kernel:90:in `tap'
/var/www/discourse/lib/service/base.rb:302:in `call'
/var/www/discourse/plugins/discourse-chat-bridge/lib/chat_bridge_module/provider/telegram/bridge.rb:9:in `block (3 levels) in <main>'
/var/www/discourse/lib/scheduler/defer.rb:125:in `block in do_work'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:119:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:105:in `block (2 levels) in start_thread'
Eccezione del job: In params.message creation: Ispezione dell'oggetto risultato di Chat::CreateMessage:
[ 1/28] [options] default (0.0168 ms) ✅
[ 2/28] [policy] no_silenced_user (0.0148 ms) ✅
[ 3/28] [policy] accept_blocks (0.0051 ms) ✅
[ 4/28] [params] default (0.0742 ms) ✅
[ 5/28] [model] channel (0.7018 ms) ✅
[ 6/28] [step] enforce_membership (0.013 ms) ✅
[ 7/28] [model] membership ❌
(altri 21 passaggi non mostrati poiché il flusso di esecuzione si è interrotto prima di raggiungerli)
Perché è fallito:
/var/www/discourse/lib/service/base.rb:184:in `run_step': Model not found (ArgumentError)
raise ArgumentError, "Model not found"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
from /var/www/discourse/lib/service/base.rb:139:in `block in call'
from /var/www/discourse/lib/service/base.rb:165:in `with_runtime'
from /var/www/discourse/lib/service/base.rb:139:in `call'
from /var/www/discourse/lib/service/base.rb:457:in `block in run!'
from /var/www/discourse/lib/service/base.rb:457:in `each'
from /var/www/discourse/lib/service/base.rb:457:in `run!'
from /var/www/discourse/lib/service/base.rb:450:in `run'
from internal:kernel:90:in `tap'
from /var/www/discourse/lib/service/base.rb:302:in `call'
from /var/www/discourse/plugins/discourse-chat-bridge/lib/chat_bridge_module/provider/telegram/services/handle_tg_message.rb:91:in `fetch_message_creation'
from /var/www/discourse/lib/service/base.rb:156:in `instance_exec'
from /var/www/discourse/lib/service/base.rb:156:in `run_step'
from /var/www/discourse/lib/service/base.rb:182:in `run_step'
from /var/www/discourse/lib/service/base.rb:139:in `block in call'
from /var/www/discourse/lib/service/base.rb:165:in `with_runtime'
from /var/www/discourse/lib/service/base.rb:139:in `call'
from /var/www/discourse/lib/service/base.rb:457:in `block in run!'
from /var/www/discourse/lib/service/base.rb:457:in `each'
from /var/www/discourse/lib/service/base.rb:457:in `run!'
from /var/www/discourse/lib/service/base.rb:450:in `run'
from intern...
Ma questo sembra più un problema di configurazione
Mi chiedo perché devo fare aggiustamenti.
Oh, questo non era previsto, immagino di aver commesso un errore qui nell’adattarmi alla nuova versione di Discourse. Ci darò un’occhiata.
Grazie! Fammi sapere se c’è qualcosa che posso fare per aiutare.
Ciao @Lhc_fl, volevo gentilmente chiederti se ci sono ancora piani per risolvere questo ![]()

