みっきー申す

ITに関する興味関心のまとめ、サイバーセキュリティニュースのまとめ、Twitterで配信中の情報まとめなどを公開します。

Twitter API を Android 端末上の python で実行して、ブログ運用を楽にしてみた

最初の投稿でもつぶやいた通り、普段情報収集しているTwitter(https://mobile.twitter.com/microkeyword)から、ブログに反映する作業を、もっと簡略化できないか?と思い、使ってみました。Twitter API。 さらに言うと、ブログの執筆はスマホ(android)でやっているので、ついでに、android 上で python を実行している例もご紹介します。

目次

  • ゴール
  • Twitter API の取得
  • android用ターミナル「Termux」でコードを実行
  • 最後に

ゴール


Twitter API の取得

発行までの手順は以下です。 ちなみに申請は Twitter の 米国ページからなので、英語が苦手な方、頑張って下さい(笑)

ちなみに、このあたりの内容は他のブログでも詳しい記載があるので、「Twitter API アクセストークン」などでググってみるとスクショ付きの解説もあるかと思います。

  1. https://developer.twitter.com/en/apps にアクセス ブラウザでTwitterへのログインが必要です

  2. 右上に表示される「create an app」をタップ

  3. developer account 有効化の確認画面が出るので「apply」をタップ

  4. developer account を有効化する対象のアカウントが表示されるので、正しければ「continue」をタップ

  5. 「組織利用」か「個人利用」かおよびユーザー名と国を聞かれるので、該当項目をチェックして、「continue」をタップ

  6. 利用用途のカテゴリと具体的な利用方法を埋め、政府機関へのTweet情報提供の有無を選んで(普通はNo)「continue」をタップ

    • ちなみに、具体的な利用方法は、それなりの英文を1,2行書いて、文字数学足りなければあとは適当に「wwwwwwwwwwwwwww」とか入力しても審査通ります(笑)
  7. 利用規約への同意、メール配信を選択して「submit application」をタップ gmailでも行けました

  8. メールが届くので、届いたメールの「Confirm your email」を選択し、認証ページへ飛びます

  9. 「Application under review.」という、審査中のメールが届くので、審査完了メールが届くまで大人しく待ちます

  10. 審査が通ると1-2日でメールが届くので、利用用途など数項目入力および送信し、いよいよ利用開始です!

  11. appsを作成し、「keys and tokens」を参照し、「Consumer_key」「Consumer_secret」「Access_token」「Access_secret」を入手します。


android用ターミナル「Termux」でコードを実行

おそらくいろいろなターミナルが利用できるとは思うのですが、 ここでは、Android ターミナル「Termux」を使った方法をご紹介します。

  • まず、google app store で「Termux」をダウンロードします。

play.google.com

  • 必要なソフトウェアをダウンロードします。 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 で適用しやすいように、各ツイートの先頭に「* 」が付くようにしてみました。

これで、だいぶ作業が楽に(笑)