Twitter API を Android 端末上の python で実行して、ブログ運用を楽にしてみた
最初の投稿でもつぶやいた通り、普段情報収集しているTwitter(https://mobile.twitter.com/microkeyword)から、ブログに反映する作業を、もっと簡略化できないか?と思い、使ってみました。Twitter API。 さらに言うと、ブログの執筆はスマホ(android)でやっているので、ついでに、android 上で python を実行している例もご紹介します。
目次
ゴール
Twitter API の取得
発行までの手順は以下です。 ちなみに申請は Twitter の 米国ページからなので、英語が苦手な方、頑張って下さい(笑)
ちなみに、このあたりの内容は他のブログでも詳しい記載があるので、「Twitter API アクセストークン」などでググってみるとスクショ付きの解説もあるかと思います。
https://developer.twitter.com/en/apps にアクセス ブラウザでTwitterへのログインが必要です
右上に表示される「create an app」をタップ
developer account 有効化の確認画面が出るので「apply」をタップ
developer account を有効化する対象のアカウントが表示されるので、正しければ「continue」をタップ
「組織利用」か「個人利用」かおよびユーザー名と国を聞かれるので、該当項目をチェックして、「continue」をタップ
利用用途のカテゴリと具体的な利用方法を埋め、政府機関へのTweet情報提供の有無を選んで(普通はNo)「continue」をタップ
- ちなみに、具体的な利用方法は、それなりの英文を1,2行書いて、文字数学足りなければあとは適当に「wwwwwwwwwwwwwww」とか入力しても審査通ります(笑)
メールが届くので、届いたメールの「Confirm your email」を選択し、認証ページへ飛びます
「Application under review.」という、審査中のメールが届くので、審査完了メールが届くまで大人しく待ちます
審査が通ると1-2日でメールが届くので、利用用途など数項目入力および送信し、いよいよ利用開始です!
appsを作成し、「keys and tokens」を参照し、「Consumer_key」「Consumer_secret」「Access_token」「Access_secret」を入手します。
android用ターミナル「Termux」でコードを実行
おそらくいろいろなターミナルが利用できるとは思うのですが、 ここでは、Android ターミナル「Termux」を使った方法をご紹介します。
- 必要なソフトウェアをダウンロードします。
pkg install vim python
pip install requests requests-oauthlib
※ 「vim」はテキストエディタ「requests」はリクエスト処理用「requests-oauthlib」はTwitter API への認証
※ 基本、実行時にソフトウェアが存在しない場合はエラーが出るので、都度、必要なソフトウェアは pkg で入手してください。
blog.py
from requests_oauthlib import OAuth1Session import json import datetime now = datetime.datetime.now() CK = '自身の値' # Consumer Key CS = '自身の値' # Consumer Secret AT = '自身の値' # Access Token AS = '自身の値' # Accesss Token Secert url = "https://api.twitter.com/1.1/statuses/home_timeline.json" # タイムライン取得用URL params = {'count': 200} # 取得ツイートの上限数を指定 twitter = OAuth1Session(CK, CS, AT, AS) req = twitter.get(url, params = params) if req.status_code == 200: timeline = json.loads(req.text) fout = open( 'result_{0:%Y%m%d}.txt'.format(now), "a") for tweet in timeline: fout.writelines("* " + tweet["text"] + "\n") else: print ("Error: %d" % req.status_code) fout.close() # result_yyyymmdd.txtファイルを閉じる print("Finish")
ちなみに、termuxが Android で言うところの /storage/emulated/0 にアクセスする方法は、次のコマンドを実行するだけです。
termux-setup-storage
これにより、termuxに新しいディレクトリが作成されます( ~/storage )
最後に
Twitter API 活用により、「result_yyyymmdd.txt」というファイル名で、ツイート一覧が取得できました!!!
ちなみに今回のスクリプトでは、markdown で適用しやすいように、各ツイートの先頭に「* 」が付くようにしてみました。
これで、だいぶ作業が楽に(笑)