Mattermost Bot Sample
Overview
This sample Bot shows how to use the Mattermost Go driver to interact with a Mattermost server, listen to events and respond to messages. Documentation for the Go driver can be found here.
Highlights of APIs used in this sample:
- Log in to the Mattermost server
- Create a channel
- Modify user attributes
- Connect and listen to WebSocket events for real-time responses to messages
- Post a message to a channel
This Bot Sample was tested with Mattermost server version 7.5.2.
Setup Server Environment
Via Docker And Docker-Compose
1 - Ensure Docker and Docker-Compose are installed on your system.
2 - Run docker-compose up -d --build
and the mattermost client will be built and will expose the port 8065
to your system's localhost.
3 - Run ./add_users.sh
. The login information for the Mattermost client will be printed.
4 - Log into your mattermost instance using these credentials and create a bot account following these instructions.
5 - Copy example.env
to .env
and fill in the bot token (obtained from the previous step), team name, etc. Alternatively, just provide your credentials as environment variables.
5 - Start the Bot.
make run
You can verify the Bot is running when
Logged in to mattermost
appears on the command line.Hi! I am a bot.
is posted in your specified channel.
See "Test the Bot" for testing instructions
Via Direct System Install/Setup
1 - Install or upgrade to Mattermost server version 3.10+, and verify that the Mattermost server is running on http://localhost:8065.
On the commands below, if you are running Mattermost server version 5.0 or later, use ./bin/mmctl
. If you are running version 4.10 or earlier, use ./bin/platform
.
Learn more about the mmctl
CLI tool in the Mattermost documentation.
2 - Create a team for the Bot to run. If you have an existing team, you may skip this step and replace botsample
with your existing team in subsequent steps.
./bin/mmctl team create --name botsample --display_name "Sample Bot playground" --email "[email protected]"
3 - Create a user, bill
, which we will use to log in and interact with the Bot.
./bin/mmctl user create --email="[email protected]" --password="Password1!" --username="bill"
4 - (Optional) Give bill
system_admin
permissions.
./bin/mmctl roles system_admin bill
5 - Log in to http://localhost:8065 as bill
and verify the account was created successfully.
6 - Create a bot account following these instructions.
7 - Copy example.env
to .env
and fill in the bot token (obtained from the previous step), team name, etc. Alternatively, just provide your credentials as environment variables.
Setup Bot Development Environment
1 - Follow the Developer Machine Setup instructions to setup the bot development environment.
2 - Clone the GitHub repository to run the sample.
git clone https://github.com/mattermost/mattermost-bot-sample-golang.git
cd mattermost-bot-sample-golang
3 - Log into your mattermost instance using these credentials and create a bot account following these instructions.
4 - Copy example.env
to .env
and fill in the bot token (obtained from the previous step), team name, etc. Alternatively, just provide your credentials as environment variables.
5 - Run with
make run
You can verify the Bot is running when
Logged in to mattermost
appears on the command line.Hi! I am a bot.
is posted in your specified channel.
Test the Bot
1 - Log in to the Mattermost server as [email protected]
and Password1!
.
2 - Join your specified channel.
3 - Post a message in the channel such as hello?
to see if the Bot responds. You should see a response if the Bot is running.
Stop the Bot
1 - In the terminal window, press CTRL+C
to stop the bot.