好的,我已修复。
bridge 插件现已兼容最新的 discourse 测试通过版本。
我期待它之后能支持QQ
根据我对该主题最新消息的理解:该插件正在运行。请告诉我我的理解是否正确。
请问此插件是否支持 Telegram 主题(聊天部分)?
非常感谢您的工作。
很高兴地宣布,此插件现已与最新版本的 Discourse 兼容 ![]()
喜欢这个。我不用 Telegram,但我喜欢这个项目将使我们最终能够与 Matrix 集成的机会 <3
@Lhc_fl 是否有办法获取插件的日志?\n我正在尝试弄清楚为什么它只能单向工作(Discourse → Telegram)。机器人当然有权访问群组消息。控制台中没有明显的日志
\n\n编辑:我正在尝试解决这个问题,并且似乎在生产环境中几乎不可能获得正确的日志。\n\nhttps://meta.discourse.org/t/alter-log-level-in-production/238375/5\n\n甚至在 production.log / production_error.log 中都没有记录与插件相关的错误或警告。\n\n我怀疑是某个 webhook 相关的问题,从外观上看,插件在出错时不会被禁用?\n\ndiscourse-chat-bridge/lib/chat_bridge_module/provider/telegram/services/setup_webhook.rb at main · Lhcfl/discourse-chat-bridge · GitHub
它只是抑制了 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 消息。
Yep, I can confirm that this works:
{"ok":true,"result":true,"description":"Webhook was set"}
这很奇怪。如果消息创建失败,错误日志将在此处打印,您应该可以在 https://your.discourse.site/logs 中看到它。
真的会是权限问题吗?如果直接回复由 telegram 机器人创建的桥接消息,会成功吗?
我实际上现在看到一些与模块相关的日志在 /logs 中:
[Discourse -> Telegram] Failed in chat_message_created:
Inspecting ChatBridgeModule::Provider::Telegram::Services::HandleDiscourseMessage result object:
[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'
但这已经是昨天的了,之后没有再发生,所以我假设这与添加机器人有关,并且尚未满足所有要求。之后,桥接插件日志就没了。当然,除非这导致它之后再也无法工作了 :/\n\n[quote=“Linca, post:34, topic:284691, username:Lhc_fl”]\n如果直接回复 telegram 机器人创建的桥接消息,会成功吗?\n[/quote]\n\n不,那行不通。\n\n我想知道是否可以查看插件创建的 secret,因为这样就可以手动创建了?\n\ndiscourse-chat-bridge/config/settings.yml at 440bf0f3056fcf195fbfeb35fd81d6b91f521f0e · Lhcfl/discourse-chat-bridge · GitHub Nginx 日志时注意到了一件事(因为 webhook 调用必须在这里发生)\n~~~
[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,对吧?\n\n...我们又前进了一步。我通过 rails console 手动设置了 secret 路径并手动调整了 webhook。POST 请求到 Discourse 现在成功了。现在出现了一个实际的错误:
/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 ’
/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 inter…
但这看起来更像是配置问题 :thinking: 我想知道为什么我需要调整。
哦,这不符合预期,我猜我在适应新版本的 Discourse 时在这里犯了个错误。我会看看的。
谢谢!如果有什么我能帮忙的,请告诉我。
嘿 @Lhc_fl 我想善意地问一下是否还有修复此问题的计划 ![]()

