matterhook

Interact with Mattermost incoming webhooks easily.


License
BSD-3-Clause
Install
pip install matterhook==0.2

Documentation

matterhook

Simply send messages to your Mattermost team using incoming webhooks.

Getting the API key

  • Login to your Mattermost team site and go to Account Settings -> Integrations
  • Next to Incoming Webhooks click Edit
  • Select the channel or private group to receive webhook payloads, then click Add to create the webhook
  • The API key is the last part of the URL (eg: u2x8rkfugj8zbqby9pw3huqnyc)

Usage

Basic usage

matterhook is very simple and efficient to use:

from matterhook import Webhook

# mandatory parameters are url and your webhook API key
mwh = Webhook('https://mattermost.MYCOMPANY.com', 'API_KEY')

# send a message to the API_KEY's channel
mwh.send('coconut webhook message')

Advanced usage

from matterhook import Webhook

# mandatory parameters are url and your webhook API key
mwh = Webhook('https://mattermost.MYCOMPANY.com', 'API_KEY')

# personalized bot name and icon
mwh.username = 'cocobot'
mwh.icon_url = 'http://3.bp.blogspot.com/-bEcLJDp_u7o/UJKPRGazv6I/AAAAAAAABGY/75z_6bbegao/s1600/coconut-oil-alzheimers-study.jpg'

# send a message to the specified channel
mwh.send('coconut is da thruth', channel='special_channel')

# override the username for this message
mwh.send('secret message', channel='special_channel', username='secret_user')

# for convenience, you can also do this...
mwh['incredible_channel'] = 'incredible message'

# ...and even this
mwh['incredible_channel'] = {'text': 'incredible message', username='incredible user'}

# or create fancy messages using attachments (https://docs.mattermost.com/developer/message-attachments.html)
attachments = []
message = {}
message['color'] = '#88fc03'
message['image_url'] = 'https://about.mattermost.com/wp-content/uploads/2017/08/Mattermost-Logo-Blue.svg'
message['fallback'] = 'A fallback message'
markdown_msg = '#### Title\n'
markdown_msg += 'This is a line of text\n'
markdown_msg += 'All markdown syntax works in attachments, like tables :\n'
markdown_msg += '''
| name                               |   date |
|------------------------------------|--------|
| Monty Python and the Holy Grail    |   1975 |
| Monty Python's Life of Brian       |   1979 |
| Monty Python's The Meaning of Life |   1983 |
'''
message['text'] = markdown_msg
attachments.append(message)
mwh.send(attachments=attachments)