GroupMe is a popular group messaging service which allows you to quickly and easily set up groups, share photos and videos, like messages, and directly notify others with the standard @<username> syntax. This service is great for easy messaging and comes with most of the standard features expected in instant message clients these days. However, GroupMe is missing one feature that can become a hassle when trying to notify everyone in a larger channel. This is where the open source community comes to the rescue with an open source Node.js project called groupme-at-all. This project sets up an easy deployment path by using the PaaS hosting provider Heroku.
The first thing we need to do is fork the project on GitHub. This will allow us to use Heroku to deploy the project straight from the repo. After logging into GitHub go to the repo here and click the 'Fork' button on the top right. After a minute of processing the repo should be in your account now.
Next, go to the GroupMe developer site here and after signing in click the 'Bots' tab and then the 'Create Bot' button. Fill out the details here to what you want and select which room the bot should appear in.
Note: The callback URL doesn't matter in this instance but you still have to provide something. I used http://localhost:8080/all-bot for mine
Now that your bot is created copy down the Bot ID and Group ID. Then click the 'Access Token' tab on the top navigation part and copy your Access Token. These will be set as environment variables on the Heroku deployment next.
Now that we have the bot created its time to deploy our repo. Head over to Heroku here and after signing in click the 'New' dropdown and select 'Create new app'. Fill out an App name, region, and then create a new pipeline and set the stage dropdown to 'production'. On the newly created app in the 'Deployment method' section choose 'GitHub' and connect with your GitHub account. Then click the 'Settings' tab and click the 'Reveal Config Vars'. Add in the following variables to connect your deployed Heroku app with the GroupMe bot you configured above:
HUBOT_GROUPME_BOT_ID <Bot ID> HUBOT_GROUPME_ROOM_ID <Room ID> HUBOT_GROUPME_TOKEN <Access Token>
Head back to the 'Deploy' tab and click 'Deploy Branch' at the bottom to deploy your application. It is as easy as that with Heroku!
It is time to test out our bot so open up the GroupMe room that you configured the bot to be in and test out a message like 'Testing the new bot! @all'. Any message ending in @all should be repeated by the bot and notifications to everyone in the channel should be sent out.
In this article, we took a quick and brief look at how to deploy an open source GroupMe bot using Heroku to add a lacked feature. This just scratches the surface on what is possible with this tech stack but hopefully, it helps give a starting point.