# Telegram Notifications Plugin (discourse-telegram-notifications)

**URL:** https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483
**Category:** Plugin
**Created:** [April 5, 2017, 2:09pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483 "2017-04-05T14:09:57Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [April 5, 2017, 2:09pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/1 "2017-04-05T14:09:57Z")

</div>

# [Discourse Telegram Notifications Plugin](https://github.com/davidtaylorhq/discourse-telegram-notifications)

> [@](#):
>
> ⚠ Do not confuse this with the [discourse-chat-integration plugin](https://meta.discourse.org/t/chatroom-integration-plugin-discourse-chat-integration/66522), they do different things.
> 
> If you want to send notifications about posts to telegram group chats or broadcast channels, use discourse-chat-integration.
> 
> If you want users to receive their notifications via telegram, use this plugin.
> 
> The two plugins can co-exist, but you MUST connect them to two different telegram bots.

> [@](#):
>
> :philosoraptor: This is not an official plugin (despite @david being a member of the team)

This plugin allows users to receive their notifications via a Telegram bot, allowing them to turn off email notifications and still keep up-to-date. :success:

You can “like” posts, and respond to them via the bot.

Here’s a quick demo video:

[https://global.discourse-cdn.com/meta/original/3X/f/5/f5cf32bb52caf0cefdba1b55b9876247f441649b.mp4](https://global.discourse-cdn.com/meta/original/3X/f/5/f5cf32bb52caf0cefdba1b55b9876247f441649b.mp4)

# Before Starting

- Your forum must be using HTTPS, and have `force_https` turned on
- Your forum must be accessible to the internet, not only an internal network (in development, give [ngrok](https://ngrok.com/) a try).

# Getting the plugin setup

1. Install the plugin using the instructions here: [How to install a plugin](https://meta.discourse.org/t/install-a-plugin/19157)
2. Create a telegram bot by talking to the [BotFather](https://telegram.me/botfather) (instructions [here](https://core.telegram.org/bots#6-botfather))
3. Paste the “token” into the site setting “telegram access token”
4. Tick “telegram notifications enabled”

I strongly recommend you use the BotFather’s `/setjoingroups` command to disable the bot being used for group chats. It is not designed for it, and risks leaking information that users are not supposed to be able to access (e.g. you don’t want private messages being sent to a group chat).

You can set the name/picture/description of your bot using the instructions [here](https://core.telegram.org/bots#botfather-commands)

# For users to receive notifications

1. Send a message to the bot, you’ll receive a message back that looks like

> To get notifications for Discourse, enter the ‘Chat ID’ 1234567 in your user preferences

1. Visit your Discourse user preferences, and paste the number in the `Telegram Notifications` box
2. You should now receive notifications by telegram message!

# Find out who’s using telegram for notifications

Here’s a query for the [data explorer plugin](https://meta.discourse.org/t/data-explorer-plugin/32566):

```sql
SELECT user_id, updated_at, value from user_custom_fields
WHERE name = 'telegram_chat_id'

```

* * *
This is still a work in progress. I think the next task would be to improve the setup flow for the user, so they don't have to copy/paste numbers between telegram and the forum.

Related discussions are: [here](https://meta.discourse.org/t/connecting-telegram-bot-to-discourse/55962), [here](https://meta.discourse.org/t/telegram-bots-anyone/60216), [here](https://meta.discourse.org/t/discourse-and-chatbot-integrations/60372) and [here](https://meta.discourse.org/t/common-event-system-for-chatrooms-a-specification/59245)

As always, suggestions and comments are very welcome 🙂

---

<div class="post-metadata">

### Author: ![thaidb](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thaidb/32/68488_2.png) [@thaidb](https://meta.discourse.org/u/thaidb)
#### Post date: [July 20, 2019, 4:18am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/114 "2019-07-20T04:18:45Z")

</div>

Hello,  
How do we sync everything chat (text and images) in group chat telegram with a topic (link topic) by comment?  
Thank!

I have more a question:  
Can we post a topic in a category(setup before), topic with text content, photo and tags to Discourse via Telegram, Slack . They sync chat automatic not forward content (Posting a transcript and setup to post to Discourse)  
Thank!

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [July 22, 2019, 1:25pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/115 "2019-07-22T13:25:58Z")

</div>

> [@thaidb](#):
>
> How do we sync everything chat (text and images) in group chat telegram with a topic (link topic) by comment?

You cannot. Two-way sync between chat and discourse is not an aim for this plugin (or for the chat-integration plugin)

> [@thaidb](#):
>
> Can we post a topic in a category(setup before), topic with text content, photo and tags to Discourse via Telegram, Slack . They sync chat automatic not forward content (Posting a transcript and setup to post to Discourse)

You can use the chat-integration plugin to send notifications based on new Discourse topics. There is no way to create topics from chat (except for the ‘transcript’ feature you mentioned).

---

<div class="post-metadata">

### Author: ![tohaitrieu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tohaitrieu/32/151338_2.png) [@tohaitrieu](https://meta.discourse.org/u/tohaitrieu)
#### Post date: [August 23, 2019, 8:35am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/116 "2019-08-23T08:35:37Z")

</div>

Hi @david

Can I setup Telegram Bot to Reply in one topic?

Example:

When I Post to Channel, Bot will create a Reply to a specific Topic?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [August 26, 2019, 8:55am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/117 "2019-08-26T08:55:26Z")

</div>

No, that is not supported. This is only designed for individual users to receive their notifications via telegram.

---

<div class="post-metadata">

### Author: ![Siddhu\_Dhangar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/siddhu_dhangar/32/123849_2.png) [@Siddhu\_Dhangar](https://meta.discourse.org/u/Siddhu_Dhangar)
#### Post date: [October 18, 2019, 3:56am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/118 "2019-10-18T03:56:06Z")

</div>

i installed discourse-telegram-notifications plugin. but it is not working. it shows error such as “\*\* INCOMPATIBLE PLUGIN \*\*” i git clone this plugin using [GitHub - davidtaylorhq/discourse-telegram-notifications: A plugin for Discourse which allows users to receive their notifications by telegram message · GitHub](https://github.com/davidtaylorhq/discourse-telegram-notifications) url. is this correct github url ?. can anyone please help me out to resolve this issue ?

 ![Screenshot%20from%202019-10-18%2009-20-11](https://global.discourse-cdn.com/meta/original/3X/b/d/bd5350139a3486b10eb65ef3715e2b2f4349bbc6.png)

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [October 18, 2019, 8:41am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/119 "2019-10-18T08:41:27Z")

</div>

Thanks for reporting @Siddhu_Dhangar. I just pushed an update to the plugin, so please try again now

---

<div class="post-metadata">

### Author: ![adorfer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/adorfer/32/82089_2.png) [@adorfer](https://meta.discourse.org/u/adorfer)
#### Post date: [October 27, 2019, 12:26am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/120 "2019-10-27T00:26:23Z")

</div>

BTW: i am getting the folloing message in the TG channel, presumingly if there is a new thread i a watched/subscribed (sub-)forum category.

```
translation missing: de.discourse_telegram_notifications.message.watching_first_post

```

Where can i declare that string? Or do i have to jump over to transifex for that? If so, please indicate where to look for.

---

<div class="post-metadata">

### Author: ![Surendra-Patil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/surendra-patil/32/147391_2.png) [@Surendra-Patil](https://meta.discourse.org/u/Surendra-Patil)
#### Post date: [November 1, 2019, 9:25am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/121 "2019-11-01T09:25:08Z")

</div>

```plaintext
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock'
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `ssl_socket_connect'
/usr/local/lib/ruby/2.6.0/net/http.rb:996:in `connect'
/usr/local/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
/usr/local/lib/ruby/2.6.0/net/http.rb:919:in `start'
/usr/local/lib/ruby/2.6.0/net/http.rb:1470:in `request'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/patches/net_patches.rb:9:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiling_methods.rb:39:in `step'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/patches/net_patches.rb:8:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-telegram-notifications/services/discourse_telegram_notifications/telegram-notifier.rb:41: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:122:in `hook'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:136:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:39:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiling_methods.rb:78:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:51:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb:48:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.7/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/conditional_get.rb:38:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:274:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in `context'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/cookies.rb:648:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.4.1/lib/logster/middleware/reporter.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/host_authorization.rb:77:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiler.rb:184:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:176:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'

How can I fix this error ?[quote="Surendra-Patil, post:121, topic:60483, full:true"]
`Preformatted text`/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock'
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `ssl_socket_connect'
/usr/local/lib/ruby/2.6.0/net/http.rb:996:in `connect'
/usr/local/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
/usr/local/lib/ruby/2.6.0/net/http.rb:919:in `start'
/usr/local/lib/ruby/2.6.0/net/http.rb:1470:in `request'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/patches/net_patches.rb:9:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiling_methods.rb:39:in `step'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/patches/net_patches.rb:8:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-telegram-notifications/services/discourse_telegram_notifications/telegram-notifier.rb:41: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:122:in `hook'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:136:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:39:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiling_methods.rb:78:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:51:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb:48:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.7/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/conditional_get.rb:38:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:274:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in `context'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/cookies.rb:648:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.4.1/lib/logster/middleware/reporter.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/host_authorization.rb:77:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiler.rb:184:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:176:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'

```

How can I fix this error ?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [November 1, 2019, 9:28am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/122 "2019-11-01T09:28:17Z")

</div>

Can you share what you see in the `info` tab of the log? Looks like that’s just the backtrace

---

<div class="post-metadata">

### Author: ![Surendra-Patil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/surendra-patil/32/147391_2.png) [@Surendra-Patil](https://meta.discourse.org/u/Surendra-Patil)
#### Post date: [November 1, 2019, 9:30am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/123 "2019-11-01T09:30:29Z")

</div>

![Screenshot%20from%202019-11-01%2014-59-37](https://global.discourse-cdn.com/meta/original/3X/d/b/db6163b8050b80d700eeab4b372423e50ec52c13.png)

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [November 1, 2019, 9:42am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/124 "2019-11-01T09:42:33Z")

</div>

It looks like your server is having trouble contacting [https://api.telegram.org](https://api.telegram.org). Are you using a [supported installation](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md)? Is your server inside a network which could be interfering with outgoing requests?

---

<div class="post-metadata">

### Author: ![Surendra-Patil](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/surendra-patil/32/147391_2.png) [@Surendra-Patil](https://meta.discourse.org/u/Surendra-Patil)
#### Post date: [November 4, 2019, 8:45am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/125 "2019-11-04T08:45:41Z")

</div>

Hi @david , sorry for late reply.  
Yes the site is accessible (redirects to [Bots: An introduction for developers](https://core.telegram.org/bots) ).

Also getting this below error.

```plaintext
ActionView::MissingTemplate (Missing template discourse_telegram_notifications/telegram/hook, application/hook with {:locale=>[:en_US, :en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby]}. Searched in:
  * "/var/www/discourse/app/views"
  * "/var/www/discourse/plugins/docker_manager/app/views"
)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/path_set.rb:48:in `find'

```

On running `openssl s_client -connect api.telegram.org:443` got below result.

```plaintext
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 308 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)

```

@codinghorror Recently openssl version was changed in latest discourse docker container due to which this issue is arising. On host machine I tried using OpenSSL 1.1.1 for telegram api and it loads the certificate.

---

<div class="post-metadata">

### Author: ![Flashio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/flashio/32/148951_2.png) [@Flashio](https://meta.discourse.org/u/Flashio)
#### Post date: [December 1, 2019, 8:32pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/126 "2019-12-01T20:32:20Z")

</div>

@david

New bug: after changing topic’s tag the first message of that topic will be send to telegram as a notification. So every time you change a topic’s tag there will be a notification in telegram.

**NOTE:** The bug is active on 2.4.0.beta7 ([06c2e28bbb](https://github.com/discourse/discourse/commits/06c2e28bbb76a6bba94717d87ac2f796e3de542b)). To activate the bug topic starter must create topic with tags, after that he must reply to that thread and topic starter’s message must be last in the topic. After that if topic starter will change the tag, then plugin will send notification which will include first post’s text.

**So how to receive infinite notification with first message of the topic:**

1. Topic Starter must create a topic
2. Topic Starter must reply to this topic
3. Topic Starter must change the topic’s tag. And now every time he change the topic’s tag everyone who subscribed to this topic will receive a notification that will include first message of that topic.

If someone will reply after topic starter’s reply and topic starter will change the topic’s tag: then notification with first message will still arrive, but only once.

Please, fix that issue as I’m using Discourse as a notification platform. 🙂

 ![48](https://global.discourse-cdn.com/meta/original/3X/e/7/e7ea7fa835f3fb98098632241524aa10f90465be.png)

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [December 2, 2019, 2:04pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/127 "2019-12-02T14:04:53Z")

</div>

Do the users also receive the ‘infinite notifications’ in the Discourse user interface?

This plugin uses the same notification system as Discourse itself, so I would be surprised if this issue is specific to the telegram notifications.

---

<div class="post-metadata">

### Author: ![Flashio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/flashio/32/148951_2.png) [@Flashio](https://meta.discourse.org/u/Flashio)
#### Post date: [December 2, 2019, 9:27pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/128 "2019-12-02T21:27:00Z")

</div>

> [@david](#):
>
> This plugin uses the same notification system as Discourse itself, so I would be surprised if this issue is specific to the telegram notifications.

Yes. When topic starter changes topic’s tag it shows up as a notification in Discourse. (only if topic starter is the last one who replied to this topic).

Can I disable it somehow or this is a bug? This bug/feature comes with 2.4.0.beta7 update.

By the way, after last update ([87a298a59b](https://github.com/discourse/discourse/commits/87a298a59b67df9c3a752d7506b3a9fce215fd9d)) the infinite notifications while changing topic’s tag is gone. Now it comes only with one notification when tag is changed. But still, how to disable notification when changing tag? Notification comes like “reply notification” but it is not.

This notification was received after “fiss” as topic started changed the tag.

 ![52](https://global.discourse-cdn.com/meta/original/3X/c/8/c8175d319b73f3d599862233379a004ad4b10f8f.png)

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [December 3, 2019, 12:00am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/129 "2019-12-03T00:00:57Z")

</div>

Do you have the tags set to “watching” in your user preferences?

---

<div class="post-metadata">

### Author: ![Flashio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/flashio/32/148951_2.png) [@Flashio](https://meta.discourse.org/u/Flashio)
#### Post date: [December 3, 2019, 3:36am UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/130 "2019-12-03T03:36:31Z")

</div>

I’ve checked. No. 🙂 All of my team just set “watching” in the category, but not for tags. There was no such trouble before an update by the way.

---

<div class="post-metadata">

### Author: ![thaidb](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thaidb/32/68488_2.png) [@thaidb](https://meta.discourse.org/u/thaidb)
#### Post date: [December 24, 2019, 3:21pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/131 "2019-12-24T15:21:25Z")

</div>

I get this error:

> translation missing: vi.discourse\_telegram\_notifications.message.watching\_first\_post

So, i can’t get notification

 ![image](https://global.discourse-cdn.com/meta/original/3X/4/b/4b1c6dfc8aa137d5d424ec6b881617dc492762bc.jpeg)

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [December 24, 2019, 5:04pm UTC](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483/133 "2019-12-24T17:04:36Z")

</div>

The plugins isn’t translated into your language.

You can send a pull request with the translation here: [discourse-telegram-notifications/config/locales at main · davidtaylorhq/discourse-telegram-notifications · GitHub](https://github.com/davidtaylorhq/discourse-telegram-notifications/tree/master/config/locales)

[Next page](https://meta.discourse.org/t/telegram-notifications-plugin-discourse-telegram-notifications/60483.md?page=2)
