TwitterのREST APIについて その3(自動ツイートまで)
こんばんは、みんろです!
【前回】TwitterDeveloper登録まで。
https://minro-blog.info/system/develop/twitter-api-2/
【参考にしたURL】
https://qiita.com/bakira/items/00743d10ec42993f85eb
今回はほとんどここのサイトを参考にさせていただきました。
https://qiita.com/tom-u/items/134e2b8d4e11feea8e12
pipがインストールされてない場合はこっちを参考に。
macの場合は最初からPythonがインストールされている。
1. 自動ツイートまでのPC環境準備
pip install requests requests-oauthlib
上記の参考にしたURLからpipをインストールしましょう。
上記の参考サイトでは、log出力がなかったので、logも出せるように下記の3ファイルを準備しましょう。
- postTweet.py
import json, config, log #標準のjsonモジュールとconfig.pyの読み込み from requests_oauthlib import OAuth1Session #OAuthのライブラリの読み込み CK = config.CONSUMER_KEY CS = config.CONSUMER_SECRET AT = config.ACCESS_TOKEN ATS = config.ACCESS_TOKEN_SECRET #認証処理 twitter = OAuth1Session(CK, CS, AT, ATS) #ツイートポストエンドポイント url = "https://api.twitter.com/1.1/statuses/update.json" print("内容を入力してください。") #キーボード入力の取得 tweet = input('>> ') print('*******************************************') #パラメータにツイート内容をセット params = {"status" : tweet} #post送信 res = twitter.post(url, params = params) #post結果をログに出力 log.tweet(json.dumps(json.loads(res.text), ensure_ascii=False)) if res.status_code == 200: #正常投稿出来た場合 print("Success.") else: #正常投稿出来なかった場合 print("Failed. : %d"% res.status_code)
- config.py
CONSUMER_KEY = "*********************" CONSUMER_SECRET = "*********************" ACCESS_TOKEN = "*********************" ACCESS_TOKEN_SECRET = "*********************"
- log.py
# log making import datetime def tweet(text): dt = datetime.datetime.now() #時間取得 str = 'logs/tweet_' + dt.strftime("%Y%m%d%H%M%S") + '.log' f = open(str, 'w') # ファイルを開く(該当ファイルがなければ新規作成) f.write(text) # 文字列を記載する f.close() # ファイルを閉じる #":"と","で改行コード with open(str,"r",encoding="utf-8") as file: filedata=file.read() filedata=filedata.replace(":",":\n") filedata=filedata.replace(",",",\n") with open(str,"w",encoding="utf-8") as file: file.write(filedata) return;
③やっと実行できますよ。
コマンドラインで下記を実行しましょう。
python3 postTweet.py
エラーなく行けば、ツイート内容を聞かれるので今回は「test」でエンター。
下記の画像のように、Successが表示されていれば、ツイート成功。
ログファイルも出力されてそうでOKでした。
早速ツイッターの画面も確認しよう。
ツイートもちゃんとできてました!
今日はここまで!
次回は、検索や自動フォローなど、ケースバイケースで紹介していこうと思います!