はい、これを修正しました。
ブリッジプラグインは、最新のディスコースのテスト済みバージョンと互換性があります。
後でQQに対応するのを楽しみにしています
トピックの最新のメッセージから理解したところによると、プラグインは機能しているとのことですが、この推測は正しいでしょうか?
このプラグインはTelegramのテーマ(チャットセクション)でも動作しますか?
ご尽力いただき、誠にありがとうございます。
このプラグインが最新バージョンの Discourse と再び互換性があることを発表できることを嬉しく思います ![]()
大好きです。Telegramは使いませんが、このプロジェクトが最終的にMatrixと統合できる機会が大好きです <3
プラグインのログを取得する方法はありますか? @Lhc_fl
片方向(Discourse → Telegram)にしかならない理由を調べています。ボットはもちろんグループメッセージにアクセスする権限があります。コンソールには目立ったログがありません ![]()
編集:これをトラブルシューティングしようとしていましたが、本番環境で適切なログを取得することは基本的に不可能のようです。
本番環境の production.log / production_error.log には、プラグインに関連するエラーや警告さえ記録されていません。
Webhook関連の問題を疑っています。見たところ、プラグインはエラー時に非アクティブにならないようです。
片方向で動作するため、提供された認証情報は間違いなく正しいです。プラグインによって書き込まれたログを取得する方法についてアイデアがある方は、お知らせください。
INFOとDEBUGを抑制しているだけなので、Rails.logger.errorは本番環境でエラーログを残すと確信しています
他のログは、設計上、本番環境に表示されないことになっています。
このプラグインはかなり前に書いたものなので、Webhookのロジックを確認する必要があるかもしれません。
ブラウザでこのURLにアクセスして、出力がどうなるか確認してください。
https://api.telegram.org/bot{token}/setWebhook?url=https://your.discourse.site/chat-bridge/telegram/hook/123456
{token} をボットトークンに置き換えてください。
Webhookが正しく設定されていれば、「ok」というメッセージが表示されるはずです。
はい、これが機能することを確認できます。
{"ok":true,"result":true,"description":"Webhook was set"}
それは奇妙ですね。メッセージの作成に失敗した場合、エラーログがここに表示されます。https://your.discourse.site/logs で確認できるはずです。
本当に権限の問題なのでしょうか? Telegramボットが作成したブリッジされたメッセージに直接返信した場合、成功しますか?
モジュールに関するいくつかのログが /logs に表示されています。
[Discourse -> Telegram] Failed in chat_message_created:
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 ❌
(実行フローがそれらに到達する前に停止したため、さらに5つのステップは表示されていません)
失敗した理由:
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'
しかし、それは昨日のもので、それ以降は繰り返されていません。そのため、ボットを追加したことに関連しており、まだすべての要件を満たしていなかったと考えています。その後、ブリッジプラグインのログはもうありません。もちろん、それがそれ以降機能しなくなった原因である可能性もありますが。
いいえ、それは機能しません。
プラグインによって作成されたシークレットを調べることができるかどうか疑問に思っています。そうすれば、手動で作成できますか?
Nginxのログ(Webhook呼び出しはここで発生する必要があります)を確認しているときに、1つのことに気づきました。
[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 "-" "-" "-" "-" "-" "-" "-" "-"
これは私が以前手動で作成したWebhookですか?
…そして、私たちは一歩前進しました。Railsコンソールでシークレットパスを手動で設定し、Webhookを手動で適応させました。DiscourseへのPOSTリクエストは現在成功しています。そして、実際のエラーが発生しました。
/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'
Job exception: In params.message creation: Inspecting Chat::CreateMessage result object:
[ 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 ❌
(実行フローがそれらに到達する前に停止したため、さらに21のステップは表示されていません)
失敗した理由:
/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 interna...
しかし、これは設定の問題のように見えますね。なぜ調整が必要なのか疑問に思っています。
おっと、これは予期していませんでした。Discourse の新しいバージョンに適応させる際に間違いを犯したようです。確認します。
ありがとうございます。何かお手伝いできることがあればお知らせください。
@Lhc_fl 様
こちらについて、修正のご予定はまだありますでしょうか? ![]()

