Telegram Notifications Plugin (discourse-telegram-notifications)

也许是个愚蠢的问题,但我应该通过 Telegram 收到哪些通知?机器人已经启动并运行,我给它发送了一条消息并获得了聊天 ID,将该 ID 输入到我的用户资料中,但自那以后虽然收到了一些电子邮件通知,却在 Telegram 上什么也没看到。我本应该收到吗?还是需要在其他地方设置这些通知?

如果需要日志来帮助解决这个问题,我可以发布它们,但我需要一些指导,告诉我该去哪里查找这些日志。

校对总是有帮助的——结果发现我(显然,尽管我从未看到错误)输入的聊天 ID 有误。现在重新输入后,通知功能已按预期正常工作。太棒了!

3 个赞

你好。我正在尝试配置,但在让机器人发送聊天 ID 时遇到了问题。无论我输入什么,都没有任何回复。

首先,我按照说明创建了机器人。
然后,我在 Telegram 中创建了一个群组,并将机器人添加为成员。
接着,我尝试发送消息,甚至标记了机器人,但仍然没有回复。

我甚至尝试创建一个频道并给机器人发消息,但依然没有回复。
我还尝试通过桌面应用和手机应用进行操作,但依然没有成功。

我不确定还能做些什么。

另外,我是否需要同时安装 discourse-chat-integration 和 discourse-telegram-notifications?

我在文档中没看到任何关于创建群组的说明,实际上文档建议禁止将机器人添加到群组中。请直接向机器人发送消息,而不是向包含机器人的群组发送消息。

根据原作者(OP)的说法(顶部阴影框中也有说明),它们的功能不同:

1 个赞

谢谢你的反馈,我会再试一次。

我可以同时使用聊天室集成插件和 Telegram 通知插件吗?我已经成功集成了聊天室集成插件,并且运行正常,但 Telegram 通知插件没有通知用户。机器人只是向我显示了以下内容:

testbot, [2019-12-28 15:58]
您好,管理员,当您在“工程师避难所”有新的通知时,我会给您发送消息。
回复通知将在“工程师避难所”上发布回复。
若要禁用,请访问您的用户偏好设置。

来自原帖(OP):

我还没有亲自尝试过,但这似乎已经回答了问题。

1 个赞

我找到出错了的地方:我把访问令牌放到了聊天集成插件区域。后来我在 Telegram 插件的设置区域找到了正确的令牌,给机器人发了消息,结果收到了回复!

块引用:我仍然无法让机器人回复并提供聊天 ID。我尝试直接给机器人发送消息,还尝试创建了一个 Telegram 频道并@机器人发送消息,但依然没有任何回应。

你找到解决办法了吗?我也遇到了这个问题。

我刚刚为这个插件提交了一个 PR:

它增加了对该字符串的支持,同时也支持 Discourse Follow 插件。
希望工作人员能尽快合并它。

看起来很棒,我已经合并了——谢谢 @barreeeiroo :smiley:

4 个赞

如果您计划扩展此功能以提供 Viber 和短信通知,请查看我的项目 GitHub - Sprachprofi/notifications_sample: Demonstrating how to cleanly handle opt-in/opt-out and notifications via a variety of platforms · GitHub

1 个赞

@david
非常实用的插件,谢谢!:blush:

在翻译中可以用 {name} 代替 {username} 吗?

很遗憾不行,这需要修改插件的代码。

4 个赞

@david,我的机器人有时无法工作……检查了令牌和站点 SSL,一切正常……有什么建议吗?

我查看了日志,这些日志都关于私信:
发送 Telegram 消息失败。消息数据= “… 私信 …”

/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.5.1/lib/logster/logger.rb:112:in `report_to_store'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.5.1/lib/logster/logger.rb:103:in `add_with_opts'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.5.1/lib/logster/logger.rb:54:in `add'
/usr/local/lib/ruby/2.6.0/logger.rb:543:in `error'
/var/www/discourse/plugins/discourse-telegram-notifications/services/discourse_telegram_notifications/telegram-notifier.rb:46:in `doRequest'
/var/www/discourse/plugins/discourse-telegram-notifications/services/discourse_telegram_notifications/telegram-notifier.rb:7:in `sendMessage'
/var/www/discourse/plugins/discourse-telegram-notifications/plugin.rb:234:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.0.7/lib/rails_multisite/connection_management.rb:63:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:196:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/middleware/chain.rb:143:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:163:in `block in process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/job_retry.rb:111:in `local'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq.rb:37:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:257:in `stats'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/job_retry.rb:78:in `global'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/logger.rb:10:in `with'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/job_logger.rb:33:in `prepare'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:162:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/util.rb:15:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/util.rb:24:in `block in safe_thread'

您好。
安装此插件时也遇到相同的问题。

问题与解决方案:

问题:
我在两个插件、两个 Telegram 机器人、两个 Telegram 聊天(Telegram 频道和 Telegram 群组)之间感到非常困惑。在这种混乱中,我总是被要求填写一个名为“Telegram Token”或类似的字段,但始终分不清两者的区别。

解决方案:
最终我发现,在 Discourse 设置中存在两个不同的字段,它们的标签/名称看起来非常非常相似,而且位置紧邻,但实际上它们并不相同

因此,请注意这是两个不同的东西,具有不同的用途:

我注意到,Telegram 频道/群组聊天不再对 /getchatid 命令做出回应。我们无法通过常规方式让它们透露其聊天 ID。以前,每当创建新机器人时,一旦我们与其开始对话,它会自动显示其 ID。但现在不再这样了。

是否可以实现当有帖子待审核时向我发送通知?

@david

首先,感谢这个插件。一切已设置完毕,运行正常,我迫不及待想向社区宣布这一消息。

不过,我有几个问题:

  1. 我该如何将其翻译成我的语言,以便让我们的社区使用更加便捷?

  2. 是否可以通过 Telegram 或 Discourse 来控制 Telegram 消息的显示样式?目前字体看起来不太美观,而且从 Discourse 发送的实际消息文本中单词之间出现了双空格(插件自带的文本显示则完全正常)。

我也是。我不太喜欢它的样子。

很高兴听到这仍然有效。我想在我的社区上试一试。