Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/erikboesen/bot-tutorial-python
An example GroupMe bot written in Python and hosted on Heroku.
https://github.com/erikboesen/bot-tutorial-python
Last synced: about 2 months ago
JSON representation
An example GroupMe bot written in Python and hosted on Heroku.
- Host: GitHub
- URL: https://github.com/erikboesen/bot-tutorial-python
- Owner: ErikBoesen
- Created: 2019-09-14T22:52:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-26T22:27:51.000Z (over 5 years ago)
- Last Synced: 2024-10-08T20:41:15.300Z (3 months ago)
- Language: Python
- Homepage:
- Size: 12.7 KB
- Stars: 1
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sample GroupMe Python Bot
**Python** | [**JavaScript**](https://github.com/groupme/bot-tutorial-nodejs)## Introduction
A simple GroupMe bot that reacts to messages sent within a group.
## Contents
* [Quickly get our sample bot up and running in your groups](#deploy)
* Deploy the code to heroku
* Create a bot
* Configure to your bot's credentials
* [Make changes to the bot](#pull)
* Pull the code down to your local machine
* Configure the local environment variables to your bot's credentials## Requirements:
* GroupMe account
* Heroku account
* [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli)## Deploy to Heroku:
Be sure to log in to Heroku, using your Heroku credentials, then click the link below.
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)
You should be taken to a page that looks like this:
![Deploy to Heroku](http://i.groupme.com/837x662.png.36c63698644a4f61a9ff3d5af91caa5e)
Optionally, you can give your app a name, or instead leave it blank and let Heroku name it for you (you can change it later).
![Success](https://i.groupme.com/959x932.png.85e7959a8a9a41c6b20f5f6b50aceecb)
## Next, create a GroupMe Bot:
Go to:
https://dev.groupme.com/session/newUse your GroupMe credentials to log into the developer site.
![Log into dev.groupme.com](https://i.groupme.com/640x292.png.38c9e590383149c1a01424fc61cdce4e)
Once you have successfully logged in, go to https://dev.groupme.com/bots/new
![Create your new bot](http://i.groupme.com/567x373.png.242d18352d7742858cf9a263f597c5d9)
Fill out the form to create your new bot:
* Select the group where you want the bot to live
* Give your bot a name
* Paste in the URL of your newly deployed Heroku app
* `http://your-app-name-here.herokuapp.com/`
* (Optional) Give your bot an avatar by providing the URL of an image
* Click submit!Go here to view all of your bots:
https://dev.groupme.com/botsClick on the one you just created.
![Select your new bot](http://i.groupme.com/871x333.png.5a33ef2b6ab74ea59d5aaa5569aaaf23)
On your Bot's page, copy the Bot ID
![Copy your Bot ID](http://i.groupme.com/615x295.png.3256190e86ed4cd7ae6cf09899c1f9a8)
## Add your Bot ID to your Heroku app:
Go here to see all of your Heroku apps and select the one you just created before:
https://dashboard-next.heroku.com/apps
![Select your heroku app](http://i.groupme.com/920x722.png.46154d6b95f249539c594b129ddb7732)
On your app page, click settings in the top navigation:
![Go to your app's settings](http://i.groupme.com/722x127.png.27c0a2e83c524064bd41bb66df76d14c)
On your app's setting page, find the Config Vars section and click the Reveal Config Vars button:
![Reveal your environment variables](http://i.groupme.com/606x181.png.94d5157963bc419886e98e038e3195c3)
Then click edit:
![Edit your environment variables](http://i.groupme.com/796x212.png.b8979454fc4742c7bae688ac67262755)
Fill out the form to add an environment variable to your app:
* In the "key" field type: BOT_ID
* In the "value" field paste your Bot ID that you copied in the previous steps
* Click the save button![Add the Bot ID environment variable](http://i.groupme.com/784x148.png.5790498a7acd46b289aca2be43e9c84e)
## Now go test your bot!
Go to GroupMe and type "/ping" in the group where your bot lives to see it in action.
![Test your Bot](http://i.groupme.com/821x587.png.7bcf55bed1c64acab83fa2c2ad0b0862)
## Pull the code to your local machine
Within terminal, change directory to the location where you would like the files to live, then run this command:
```sh
heroku git:clone -a YOUR_APP_NAME_HERE
```And then change directory into the new folder
```sh
cd YOUR_APP_NAME_HERE
```## Configure your local `BOT_ID` environment variable
You will need to set the `BOT_ID` environment variable so that your bot will know where to send its messages.
If you don't know what your Bot ID is, please refer back to [this](#get-bot-id) section, where it is explained how to retrieve it.
In your terminal, run
```sh
export BOT_ID=INSERT_YOUR_BOT_ID_HERE
```
You may wish to add this to a file that runs each time you start your shell, such as `~/.bashrc`.For Heroku, run:
```sh
heroku config:set BOT_ID=INSERT_YOUR_BOT_ID_HERE
```## Start the server
To test your bot locally, open terminal and install dependencies:
```sh
pip3 install -r requirements.txt
```Then start a local server.
```sh
FLASK_APP=bot.py flask run
```
or use gunicorn to imitate the production Heroku environment:
```sh
gunicorn bot:app
```Then navigate to `http://localhost:8000` in a browser.
![Local bot](http://i.groupme.com/502x133.png.f06c630467954f5dab4c742dc67b71bf)
## All done! Go play around and make the bot your own.