筆者について
- 東洋大学 情報連携学部 の学生
- INIAD
準備
- pythonを実行できる環境
- herokuアカウント持っていてほしい
- Twitter APIも使えるようになっていてほしい
Let's start!
ここに ソースコード
ソースコードに「requirements.txt」があります。
これは、herokuでinstallされるモジュールどもです。
tweet.py
import urllib
from requests_oauthlib import OAuth1Session
import requests
import sys
import os
import datetime
# キー等は環境変数に入れます
CK = os.environ.get("CK")
CS = os.environ["CS"]
AT = os.environ["AT"]
ATS = os.environ["ATS"]
# 署名URLの作成みたいな感じかな
twitter = OAuth1Session(CK, CS, AT, ATS)
# statues/update使います。(短期間での同じツイート内容はブロックされる)
url = "https://api.twitter.com/1.1/statuses/update.json"
# ex. おはよんよん!!2019年12月11日 08:51:56
dtNow = datetime.datetime.now() + datetime.timedelta(hours=9)
tweet = "おはよんよん!!" + dtNow.strftime('%Y年%m月%d日 %H:%M:%S')
params = {
"status": tweet
}
res = twitter.post(url, params=params)
if res.status_code == 200:
print("SUCCESS")
else:
print(res)
注意
statues/updateは短期間で同じツイートをした場合はブロックされます。(403が帰ってくる)
なので、datetimeを使って毎回異なる時間帯を文字列に付け加えました。
heroku cliの設定
ご自身のターミナルで以下を実行。
なお、初期設定はしてあるとみなす。
terminal
$ heroku login
$ heroku create [app name]
$ git init
$ git remote add heroku https://git.heroku.com/[your app name].git
$ git add .
$ git commit -m "First commit to heroku"
$ git push heroku master
herokuの環境変数にTwitterのAPIキーを設定
terminal
$ heroku config:set CK=APIkey CS=APIsecretkey AT=Accesskey token ATS=Accesstokensecret
実際にherokuで実行されるか確認
terminal
$ heroku run python tweet.py
SUCCESSが返ればOK!!!!
herokuでcron(scheduler)の設定
なお、クレジットカードの登録はしてあるとする
terminal
$ heroku addons:add scheduler:standard
herokuに行く
- 作成したappがあるので、その中でschedulerをクリック
- create addがあると思うので、クリックする。
上記のように設定すれば完了です!!
10分後に確認してみましょう!!
お疲れ様です!