Skip to content

ablepharus/python-mattermost-driver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Mattermost Driver (APIv4)

Info

The repository will try to keep up with the master of https://github.com/mattermost/mattermost-api-reference

If something changes, it is most likely to change because the official mattermost api changed.

Installation

pip install mattermostdriver

Documentation

Documentation can be found at https://vaelor.github.io/python-mattermost-driver/ .

Usage

from mattermostdriver import Driver

foo = Driver({
    # Required options
    'url': 'mattermost.server.com',
    'login_id': 'user.name',
    'password': 'verySecret',
    # Optional / defaults to
    'scheme': 'https',
    'port': 8065,
    'basepath': '/api/v4',
    # Use False if self signed/insecure certificate
    'verify': True,
    # The interval the websocket will ping the server to keep the connection alive
    'timeout': 30,
})

# Most of the requests need you to be logged in, so calling login()
# should be the first thing you do after you created your Driver instance.
# login() returns the raw response
foo.login()

# You can make api calls by using api['yourendpointofchoice'].
# The names of the endpoints and requests are almost identical to
# the names on the api.mattermost.com/v4 page.
# API calls always return the json the server send as a response.
foo.api['users'].get_user_by_username('another.name')

# If the api request needs additional parameters
# you can pass them to the function in the following way:
# - Path parameters are always simple parameters you pass to the function
foo.api['user'].get_user(user_id='me')

# - Query parameters are always passed by passing a `params` dict to the function
foo.api['teams'].get_teams(params={...})

# - Request Bodies are always passed by passing an `options` dict or array to the function
foo.api['channels'].create_channel(options={...})

# See the mattermost api documentation to see which parameters you need to pass.
foo.api['channels'].create_channel(options={
    'team_id': 'some_team_id',
    'name': 'awesome-channel',
    'display_name': 'awesome channel',
    'type': 'O'
})

# If you want to make a websocket connection to the mattermost server
# you can call the init_websocket method, passing an event_handler.
# Every Websocket event send by mattermost will be send to that event_handler.
# See the API documentation for which events are available.
foo.init_websocket(event_handler)

# To upload a file you will need to pass a `files` dictionary
channel_id = foo.api['channels'].get_channel_by_name_and_team_name('team', 'channel')['id']
file_id = foo.api['files'].upload_file(
            channel_id=channel_id
            files={'files': (filename, open(filename))})['file_infos'][0]['id]

# track the file id and pass it in `create_post` options, to attach the file
foo.api['posts'].create_post(options={
    'channel_id': channel_id,
    'message': 'This is the important file',
    'file_ids': [file_id]})

Available endpoints:

  • users
  • teams
  • channels
  • posts
  • files
  • preferences
  • system
  • webhooks
  • commands
  • compliance
  • cluster
  • brand
  • oauth
  • saml
  • ldap

See https://api.mattermost.com/v4/ to see which api requests are available.

About

Python Mattermost Driver for APIv4

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%