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

Is this only limited to public channels or can it work with private Slack channels?

UPDATE: I got it to work by treating the private channels as public channels and prefixing its name with #. Slash commands still don’t work on private channels though.

4 Likes

I set up rules for private Slack channels using the Discourse interface and I can receive the post notifications just fine. However, I can’t use slash commands on those private channels. They work just fine on public channels. I was hoping to use /discourse post for the transcripts. Is this a bug?

Yes, it sounds like a bug - I don’t think you are the only one with this problem.

2 Likes

Got it. I thought there was something wrong with my setup. I’m using the latest version of Discourse (v2.0.0.beta5+149).

I’ve just created a PR to fix slash commands in private channels, and add support for transcripts in private channels and direct messages:

This will require adding two new ‘scopes’ to the slack app, which I’ve added to the howto above:

  • groups:history
  • im:history
6 Likes

Awesome! Looking forward to testing it :slight_smile: We actually use wisemonk on our Slack as well but we never could trigger it no matter how busy our channels get.

2 Likes

Just noticed that there’s a new version of the chat integration plugin but this fix isn’t included. Will this be merged anytime soon?

From what I can tell on the settings, it doesn’t look like there’s a way to send a notifications as a slack PM… is that possible? Or does that need to be developed/implemented?

You should be able to send notifications as a PM by specifying the channel name as something like @jerdog.

Slash commands do not currently work within private channels or private messages, but will do once this PR is merged by the team:

https://github.com/discourse/discourse-chat-integration/pull/20

3 Likes

Is there any way to configure this so that the messages posted in slack are posted by a Bot (other than slackbot)?

Messages are posted by a bot. You can configure the name and picture of the bot in your slack app settings. Notifications look something like this:

1 Like

Hmm, maybe this is just some kind of caching issue with Slack?

Our slack community is called “Envoy”. I can see the correct name when I click on “Envoy” there but ideally the message comes in appearing from “Discourse”.

I will wait a bit and see if it resolves itself.

1 Like

Hi all,

I’ve tried to add slack integration on my Discourse self-hosted app but I’m encountering an error when a new topic is created on a category … When I run a test on my channel rule, I get a “500 error” …

Here is the log I’ve received :
URI::InvalidURIError (can not set host with registry or opaque) /usr/local/lib/ruby/2.4.0/uri/generic.rb:592:in 'check_host'

And here is an extract of the error backtrace :

/usr/local/lib/ruby/2.4.0/uri/generic.rb:592:in 'check_host'
/usr/local/lib/ruby/2.4.0/uri/generic.rb:636:in 'host='
/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message_formatter.rb:44:in 'absolute_url'
/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message_formatter.rb:21:in 'start_element'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/parser.rb:36:in 'parse_with' [...]

Has anyone ever had this error?

when i used the slash command from a private channel i.e
#my-special-channel -> /discourse watch site-feedback

the entry in the discourse plugins settings had the channel #privategroup

i.e

works fine if i go and edit the channel name, but this isn’t ideal for users who aren’t also discourse admins :-[

2 Likes

A few issues i have had -

  • This gets posted in a channel with name as sakshi. Have I missed some configuration here ?
  • slash commands aren’t working for me. The redirect urls that you have told above

/chat-integration/slack/interactive and command do not seem to be valid :confused:

 curl -vL localhost/chat-integration/slack/command > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying ::1...
* connect to ::1 port 80 failed: Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /chat-integration/slack/command HTTP/1.1
> Host: localhost
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Server: nginx
< Date: Thu, 23 Aug 2018 16:57:58 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< X-Request-Id: cf210d9f-4e18-465e-bec5-77f656095a3f
< X-Runtime: 0.027693
<
{ [4703 bytes data]
100  4695    0  4695    0     0   124k      0 --:--:-- --:--:-- --:--:--  127k
* Connection #0 to host localhost left intact

Sorry, the issue was with our server, it is accessible only through our vpn. As slack could not contact the server it raised 503_service_error.

1 Like

when i use slash command on slack channel /discourse status i got error ‘Peer certificate cannot be authenticated with the given CA certificate’ . Kindle provide suggestions asap.

It sounds like Slack doesn’t like the SSL certificate of your Discourse server. Can you share your Discourse URL here?

3 Likes

Hi!

I advertise Discourse using your plugin on our company Slack. :+1:

However I noticed, that unlisted topics are also mentioned by the bot. Could you tweak it to not blurt those without explicit command?

And the same thoughts about not public categories.

Thanks

1 Like

Having an option to prevent posting of unlisted topics sounds like a good idea.

For private categories, you can already control that. See the “Security/Permissions” section of this topic: Chatroom Integration Plugin (discourse-chat-integration)

1 Like