patatman / mattermost-bot-sample-golang

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 3.10.0.

Setup Server Environment

Via Docker And Docker-Compose

1 - Ensure Docker and Docker-Compose are installed for your system

2 - Run ./add_users.sh. The login information for the Mattermost client will be printed

3 - Run docker-compose up -d --build and the mattermost client will be built and will expose the port 8065 to your system's localhost

4 - Start the Bot.

make run

You can verify the Bot is running when

  • Server detected and is running version X.Y.Z appears on the command line.
  • Mattermost Bot Sample has started running is posted in the Debugging For Sample Bot 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 team_name with your existing team in subsequent steps.

./bin/mmctl team create --name botsample --display_name "Sample Bot playground" --email "admin@example.com"

3 - Create the user account the Bot will run as.

./bin/mmctl user create --email="bot@example.com" --password="Password1!" --username="samplebot"

4 - Create a second user, bill, which we will use to log in and interact with the Bot.

./bin/mmctl user create --email="bill@example.com" --password="Password1!" --username="bill"

5 - (Optional) Give bill system_admin permissions.

./bin/mmctl roles system_admin bill

6 - Add users to the team

./bin/mmctl team add botsample samplebot bill

7 - Verify the e-mail address

./bin/mmctl user verify samplebot

8 - Log in to http://localhost:8065 as bill and verify the account was created successfully. Then, navigate to the botsample team you created in step 2 to interact with the Bot.

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 - Start the Bot.

make run

You can verify the Bot is running when

  • Server detected and is running version X.Y.Z appears on the command line.
  • Mattermost Bot Sample has started running is posted in the Debugging For Sample Bot channel.

Test the Bot

1 - Log in to the Mattermost server as bill@example.com and Password1!.

2 - Join the Debugging For Sample Bot channel.

3 - Post a message in the channel such as are you running? to see if the Bot responds. You should see a response similar to Yes I'm running if the Bot is running.

Stop the Bot

1 - In the terminal window, press CTRL+C to stop the bot. You should see Mattermost Bot Sample has stopped running posted in the Debugging For Sample Bot channel.

About

License:Apache License 2.0


Languages

Language:Go 89.4%Language:Shell 9.1%Language:Makefile 1.4%