Set up Telegram notifications using the discourse-chat-integration plugin


(David Taylor) #1

This #howto describes how to setup the Telegram provider included in discourse-chat-integration.

Install

If you haven’t already, install the discourse-chat-integration plugin

Setup Telegram

  1. Talk to the Telegram “Botfather” :robot: and setup a new bot. detailed instructions here
  2. Make sure to copy the token that the BotFather gives you. It will look something like this:
    110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
    

Setup Discourse

  1. In your site settings, paste the token you got earlier into the chat integration telegram access token setting, and save it

  2. Enable the chat_integration_telegram_enabled setting, and save it

  3. Go to the Plugins tab, then Chat Integrations

  4. Go to the Telegram tab

    • Note: if the Telegram tab is not visible, it means something went wrong when connecting to their API. You should check your site logs, then try again by re-enabling the chat_integration_telegram_enabled setting

Adding a channel

  1. Add your bot to a group chat on telegram (or just start a private chat with it)

  2. You should receive a message like this

  3. Copy the Chat ID. If there’s a minus sign before it, make sure to include it - it’s very important!

  4. Go to your discourse admin panel, Plugins , Chat Integrations , Telegram

  5. Click Add Channel

  6. Enter a name for the channel (this is only displayed in the discourse admin panel, it can be anything)

  7. Paste the Chat ID from earlier into the box, then click Save Channel

  8. Use the Test button on the channel you just created to check that everything’s working. You should see something like this:

  9. Setup some “Rules” for your channel, according to the discourse-chat-integration instructions.

  10. Enjoy all the notifications :allthethings:

Using in a broadcast channel

To send notifications to a telegram broadcast channel, add the bot as a channel administrator, and then send the message

/getchatid

to obtain the chat ID. Then follow the instructions above to set up on Discourse.

In a broadcast channel you cannot use slash commands to manage rules.

Slash commands

You can use “slash commands” to control rules from Telegram. Check that the chat integration telegram enable slash commands site setting is enabled. Note that this gives anyone who can post in the group chat permission to edit the rules.

To learn how to use them, just send /help (or /help@my-forum-bot if in a group chat) and the bot will send you a help message.

Setting up command auto-complete (not necessary, but makes it much easier to use)

  1. Talk to the Telegram BotFather :robot:
  2. Select your bot, click edit bot, then edit commands
  3. Copy and paste this list of commands in
    watch - [category] [tag:name] | notify this channel for new topics and new replies matching rule
    follow - [category] [tag:name] | notify this channel for new topics matching rule
    mute - [category] [tag:name] | block notifications to this channel for posts matching rule
    remove - [rule number] | remove a rule (see /status for numbers)
    status - list all rules for this channel
    help - display a help message
    
  4. You should get a success message :slight_smile:

Other bot customisations

Talk to the Telegram BotFather :robot: to customise the name, description and icon for your bot. You should leave “Group Privacy” enabled, otherwise the bot will try and respond to every single message in a group chat.


How to link your community to the discourse app?
(Diego Barreiro) #2

Isn’t possible to allow users to subscribe to any public category? Without asking an admin to add their id to the whitelist?


(David Taylor) #3

Not currently. It is possibly something that could be added (this is how Slack works), but given there is no concept of “organisations” on telegram, we would need to be careful that only public-facing categories are visible.

For per-user stuff you could try the telegram-notifications-plugin


(Diego Barreiro) #4

But that means two different bots :sweat_smile:
Anyway, thanks for such good plugins :+1:


(Michael Pankov) #5

I’ve set it up, and it works with bot itself. However, when I set it up for public channel and try to test, an error “422 No Reason Phrase” occurs.
Could someone help me out?


(David Taylor) #6

Where does this error occur? In telegram, or in the “test” dialog in the Discourse admin panel?