matrix-docker-ansible-deploy/docs/configuring-playbook-bridge-appservice-webhooks.md
Sathis 4356a7d405
Configuring webhooks
Added steps to configure appservice webhooks in the dimension manager.
2020-02-20 10:41:19 +05:30

2.4 KiB

Setting up Appservice Webhooks (optional)

The playbook can install and configure matrix-appservice-webhooks for you.

This bridge provides support for Slack-compatible webhooks.

Setup Instructions:

loosely based on this

  1. All you basically need is to adjust your inventory/host_vars/matrix.<domain-name>/vars.yml:
matrix_appservice_webhooks_enabled: true
matrix_appservice_webhooks_api_secret: '<your_secret>'
  1. In case you want to change the verbosity of logging via journalctl -fu matrix-appservice-webhooks.service you can adjust this in inventory/host_vars/matrix.<domain-name>/vars.yml as well.

Note: default value is: info and availabe log levels are : info, verbose

matrix_appservice_webhooks_log_level: '<log_level>'
  1. If you've already installed Matrix services using the playbook before, you'll need to re-run it (--tags=setup-all,start). If not, proceed with configuring other playbook services and then with Installing. Get back to this guide once ready.

  2. Configure Webhooks bridge by opening the Dimension integration manager -> Settings -> Bridges and select edit action for "Webhook Bridge". Press "Add self-hosted Bridge" button and populate "Provisioning URL" & "Shared Secret" values from appservice-webhooks/config/config.yaml file's homeserver URL value and provisioning secret value respectively.

  3. Invite the bridge bot user to your room:

    • either with /invite @_webhook:<domain.name> (Note: Make sure you have administration permissions in your room)

    • or simply add the bridge bot to a private channel (personal channels imply you being an administrator)

  4. Send a message to the bridge bot in order to receive a private message including the webhook link.

!webhook
  1. The JSON body for posting messages will have to look like this:
{
    "text": "Hello world!",
    "format": "plain",
    "displayName": "My Cool Webhook",
    "avatarUrl": "http://i.imgur.com/IDOBtEJ.png"
}

You can test this via curl like so:

curl --header "Content-Type: application/json" \
--data '{
"text": "Hello world!",
"format": "plain",
"displayName": "My Cool Webhook",
"avatarUrl": "http://i.imgur.com/IDOBtEJ.png"
}' \
<the link you've gotten in 5.>