Ich werde Ihnen zeigen, wie Sie einen Twitter-Bot implementieren, der auf Heroku in Python ausgeführt wird. Ich denke, es ist erschöpft, aber es ist die Version 2016.
Die Lösung besteht darin, ein Python-Skript auf Heroku bereitzustellen und das Skript regelmäßig mit Heroku Scheduler auszuführen.
Der Quellcode für die fertige Version ist unten. https://github.com/k-enomoto/minimum_twitter_bot
Es gibt jeweils weitere detaillierte Artikel. Bitte beziehen Sie sich auf diese.
Installieren Sie die Bibliothek, die Sie verwenden möchten.
$ pip install python-twitter
$ pip install bottle
Wir müssen Heroku mitteilen, welche Bibliothek verwendet werden soll, also erstellen Sie "require.txt".
$ pip freeze -l > requirements.txt
Vielleicht wird es so sein.
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
Holen Sie sich die Twitter-API "consumer_key", "consumer_secret", "access_token_key" und "access_token_secret" im Voraus. Informationen zur Erfassungsmethode finden Sie im folgenden Artikel. Tweet mit Twitter API in Ruby Aus Sicherheitsgründen wird jeder Schlüssel in einer Umgebungsvariablen festgelegt. Wie Sie Umgebungsvariablen in Heroku festlegen, wird später beschrieben.
Bitte zögern Sie nicht, den Inhalt des Tweets zu arrangieren, sobald er von der Web-API übernommen wurde.
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())
Dies ist der Punkt dieser Zeit. Bereiten Sie eine Dummy-Web-App vor, damit der Prozess auf Heroku ausgeführt wird. In diesem Artikel haben wir die leichte Web-Framework-Flasche verwendet. Der Beispielcode in Flaschendokumentation wird unverändert verwendet.
index.py
# -*- coding: utf-8 -*-
import os
from bottle import route, run
@route("/")
def hello_world():
return "" #Was auch immer Sie hierher zurückkehren
run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
Procfile Das Procfile enthält die Befehle, die im Heroku-Container ausgeführt werden sollen. Beschreibt den Befehl zum Starten der obigen Dummy-Webanwendung.
Procfile
web: python index.py
runtime.txt
Dies ist Punkt 2.
Erstellen Sie runtime.txt
und beschreiben Sie die zu verwendende Laufzeit.
runtime.txt
python-3.5.2
Jetzt haben Sie alle notwendigen Dateien.
index.py
tweet.py
requirements.txt
runtime.txt
Procfile
Um auf Heroku bereitgestellt zu werden, müssen die Dateien von Git verwaltet werden. Commit zu Git.
git add .
git commit -m "Initial commit"
In Heroku bereitstellen. Auch die oben genannten Umgebungsvariablen werden hier eingestellt. Bitte ersetzen Sie "your_cosumer_key", "your_consumer_secret", "your_access_token_key", "your_access_token_secret" durch Ihre eigenen Werte.
$ 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
Stellen Sie sicher, dass Sie es ordnungsgemäß bereitstellen können.
$ heroku logs
Registrieren Sie abschließend die Aufgabe bei Heroku Scheduler. Geben Sie den folgenden Befehl ein, um die Registrierungsseite für den Scheduler aufzurufen.
$ heroku addons:create scheduler:standard
$ heroku addons:open scheduler
Stellen Sie den vom Scheduler auszuführenden Befehl und die Frequenz ein. Lassen Sie uns ein Python-Skript zum Twittern einrichten.
$ python tweet.py
Damit ist der Twitter-Bot fertig.
Recommended Posts