Je vais vous montrer comment implémenter un bot Twitter qui fonctionne sur Heroku en Python. Je pense que c'est épuisé, mais c'est la version 2016.
La solution consiste à déployer un script Python sur Heroku et à utiliser Heroku Scheduler pour exécuter le script régulièrement.
Le code source de la version finale est ci-dessous. https://github.com/k-enomoto/minimum_twitter_bot
--Code source minimum pour Twitter Bot --Déployer sur Heroku
Il existe d'autres articles détaillés pour chacun, veuillez donc les consulter.
Installez la bibliothèque que vous souhaitez utiliser.
$ pip install python-twitter
$ pip install bottle
Nous devons dire à Heroku quelle bibliothèque utiliser, alors créez requirements.txt
.
$ pip freeze -l > requirements.txt
Ce sera peut-être comme ça.
bottle==0.12.9
future==0.15.2
oauthlib==1.1.2
python-twitter==3.1
requests==2.10.0
requests-oauthlib==0.6.2
Obtenez l'API Twitter consumer_key
, consumer_secret
, ʻaccess_token_key, ʻaccess_token_secret
à l'avance.
Veuillez vous référer à l'article suivant pour la méthode d'acquisition.
Tweet en utilisant l'API Twitter dans Ruby
De plus, pour des raisons de sécurité, chaque clé est définie dans une variable d'environnement. Comment définir les variables d'environnement dans Heroku sera décrit plus loin.
N'hésitez pas à organiser le contenu du tweet dès qu'il est extrait de l'API Web.
tweet.py
# -*- coding: utf-8 -*-
import os
from datetime import datetime
import twitter
api = twitter.Api(consumer_key=os.environ["CONSUMER_KEY"],
consumer_secret=os.environ["CONSUMER_SECRET"],
access_token_key=os.environ["ACCESS_TOKEN_KEY"],
access_token_secret=os.environ["ACCESS_TOKEN_SECRET"]
)
api.PostUpdate("system time is %s" % datetime.now())
C'est le point de cette fois. Préparez une application Web factice pour maintenir le processus en cours d'exécution sur Heroku. Dans cet article, nous avons utilisé la bouteille de cadre Web léger. L'exemple de code dans documentation de bouteille est utilisé tel quel.
index.py
# -*- coding: utf-8 -*-
import os
from bottle import route, run
@route("/")
def hello_world():
return "" #Quoi que vous retourniez ici
run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
Procfile Le Procfile contient les commandes à exécuter dans le conteneur Heroku. Décrit la commande pour démarrer l'application Web factice ci-dessus.
Procfile
web: python index.py
runtime.txt
C'est le point 2.
Créez runtime.txt
et décrivez le runtime à utiliser.
runtime.txt
python-3.5.2
Vous avez maintenant tous les fichiers nécessaires.
index.py
tweet.py
requirements.txt
runtime.txt
Procfile
Afin de déployer sur Heroku, les fichiers doivent être gérés par Git. Commit à Git.
git add .
git commit -m "Initial commit"
Déployez-vous sur Heroku.
De plus, les variables d'environnement mentionnées ci-dessus sont définies ici. Veuillez remplacer your_cosumer_key
, your_consumer_secret
, your_access_token_key
, your_access_token_secret
par vos propres valeurs.
$ heroku create --stack cedar
$ git push heroku master
$ heroku config:set CONSUMER_KEY=your_cosumer_key CONSUMER_SECRET=your_consumer_secret ACCESS_TOKEN_KEY=your_access_token_key ACCESS_TOKEN_SECRET=your_access_token_secret
Assurez-vous que vous pouvez le déployer correctement.
$ heroku logs
Enfin, enregistrez la tâche avec Heroku Scheduler. Entrez la commande suivante pour afficher la page d'enregistrement du planificateur.
$ heroku addons:create scheduler:standard
$ heroku addons:open scheduler
Définissez la commande à exécuter par le planificateur et la fréquence. Configurons un script Python pour tweeter.
$ python tweet.py
Ceci termine le bot Twitter.