Autoresponder for Google Chat and Hangouts
Autoresponder is a Django project that hosts static Google Chat/Hangouts bots.
I originally created it to avoid unnoticed messages to my forwarding accounts, but it's also found use with employees and small business owners.
The hosted version is available at https://gchat.simon.codes.
Autoresponder can also be self-hosted.
First, install the dependencies and connect your account:
$ pip install -r requirements.txt $ python standalone_bot.py auth
You only need to run this once. The OAuth credentials will be written to your current working directory.
Then, start the bot:
$ python standalone_bot.py run email@example.com 'my autoresponse'
To further customize your bot, modify the constructor params for StandaloneBot at the bottom of standalone_bot.py (the arguments are documented in lib.chatworker.bot.AutoRespondBot).
Email notifications are not enabled by default.
To enable them you must configure gchatautorespond/settings_standalone.py to use your mail server.
Gmail SMTP values are provided as an example;
to use it, set
DJ_EMAIL_HOST_USER to your gmail address and
DJ_EMAIL_HOST_PASSWORD to your password (or app password) as environment variables.
Then, verify your configuration with:
DJANGO_SETTINGS_MODULE=gchatautorespond.settings_standalone python manage.py sendtestemail firstname.lastname@example.org email@example.com
Once email sending is configured, you can enable autoresponses with notifications by running:
$ python standalone_bot.py notify firstname.lastname@example.org 'my autoresponse'
Or, you can just send notifications without responses with:
$ python standalone_bot.py notify email@example.com
In either case, notifications are sent from your
DJ_EMAIL_HOST_USER to your provided email.
You can control the recipient email by changing the
notify_email parameter to StandaloneBot.
- ansible: deployments
- gchatautorespond/apps/autorespond: main django app
- gchatautorespond/lib/chatworker: manages chat bots
- nix: infra/config management
- secrets: prod secrets (managed with transcypt)