This is a template for creating your own twitter bot using python and heroku. The only programming necessary is to update the function get_message()
in app.py
to create your bot's tweets.
Also, if you'd like to randomly favorite other users' tweets by keyword search, uncoment the call to random_favoriting()
in main()
, and change the keywords to those you'd like to search for.
Confused? Try reading this. Or contact me @jehosafet.
- python
- Install Twython (
pip install Twython
): for generating/posting tweets in python app
- Install Twython (
- heroku
-
Fork and pull this repo.
-
In your local repo, create a new heroku app.
heroku create --stack cedar
heroku apps:rename YOUR_APP_NAME
- Your heroku app will now keep the python script
app.py
running as often as possible.
-
Create a new twitter account.
- Use your current email to create the account by adding a tag.
- Confirm the email address associated with this new twitter account.
-
From your main twitter account (not the one you just created, unless this is your first twitter account!) create a new twitter app.
- Under Settings / Application Type:
- Enable "Read and Write"
- Check "Allow this application to be used to Sign in with Twitter"
- Under Details:
- Click "Create My Access Token"
- Connect this app to your bot's twitter acount (help here)
$ gem install twurl
$ twurl authorize --consumer-key "REPLACE_THIS" --consumer-secret "REPLACE_THIS"
- When
twurl
asks you to go to a url to log-in, now use the bot account you just created.
- Under Settings / Application Type:
-
Create an
.env
file containing your twitter keys.twurl
generated some keys for your new bot account. You can find these in~/.twurlrc
.- In your local repo, create a file called
.env
that contains these twitter app keys, one per line:TWITTER_CONSUMER_KEY=replace_this
TWITTER_CONSUMER_SECRET=replace_this
TWITTER_OAUTH_TOKEN=replace_this
TWITTER_OAUTH_TOKEN_SECRET=replace_this
- For heroku, use
heroku-config
to copy contents of.env
to your heroku app.- Install heroku-config:
heroku plugins:install heroku-config
. - Now run
heroku config:push
.- NOTE: To update heroku environment variables later, run
heroku config:push --overwrite
- Alternatively, add heroku environment variables manually using
heroku config:set YOUR_ENV_VAR=replace_this
- NOTE: To update heroku environment variables later, run
- Install heroku-config:
Okay, now here's the fun part:
-
Update the function
get_message()
inapp.py
to create your bot's tweets.- Read about twitter bot etiquette for bot guidelines.
- Use the wordnik api for getting random parts of speech.
-
Test your bot locally.
- Running
foreman start
should generate your tweets once every minute, or at whatever rate you set inapp.py
.
- Running
-
Commit and push local changes to heroku and github.
git push heroku master
pushes all commits to heroku and starts up your app.- Your bot should now tweet as long as your heroku app is running (via the worker dyno).