前回の続きで取得した情報をツイートします。
Twitter APIの取得
投稿のためにTwitter APIを取得しました。
申請が面倒くさかったですが、すんなりGETできました。
下記サイトの手順のままです。
https://www.torikun.com/entry/twitter-developer-api/
私は申請の説明は映画情報投稿アプリを作りたい旨の説明文を書きました。
8/20に申請したのですが、その日に登録のメールが来ました。
投稿用スクリプト
tweetのAPIのナレッジはたくさんあります。
私は下記サイトを参考(というか丸々借用)しました。
tweepyの参考サイト
qiita.com
※tweepyとは別にtweetpyというライブラリもあるようです。
ナレッジが多い前者で作っています。
keyは別ファイルに外出ししておきます。
- configure.py
(tweetpy) masashi@PC-ubuntu:~/tweetpy$ cat configure.py CK = '取得したキー' CS = '取得したトークン' AT = '取得したキー' AS = '取得したトークン'
- posttw.py
自分のアカウントにtweetするだけです。
(tweetpy) masashi@PC-ubuntu:~/tweetpy$ cat posttw.py import tweepy import sys import configure Consumer_Key=configure.CK Consumer_Secret=configure.CS Access_Token=configure.AT Access_Secret=configure.AS auth = tweepy.OAuthHandler(Consumer_Key, Consumer_Secret) auth.set_access_token(Access_Token, Access_Secret) api = tweepy.API(auth) # ツイート api.update_status(sys.argv[1])
テストツイートしてます。
(tweetpy) masashi@PC-ubuntu:~/tweetpy$ python posttw.py 'APIからツイート!'
OKですね。
APIからツイート!
— masashi (@palomax69) August 24, 2019
シェルと合体
- twmovieinfo.sh
(tweetpy) masashi@PC-ubuntu:~/tweetpy$ cat twmovieinfo.sh #!/bin/bash # タイトルにスペースを含む場合がある movieinfo=$(movies -d $@) if [ $? == 1 ] ; then echo "タイトルが見つかりません。終了します。" exit 1 fi DATE=$(date +%F) INFO=$(echo "$movieinfo" | cut -d ' ' -f 2- | grep -Pe '^Y|^G|^Di|^Ac|^Pr') # sedで行末スペース削除 TITLE=$(echo "$movieinfo" | grep Title | awk '{c="";for(i=3;i<=NF;i++) c=c $i" " ;print c}'| sed -e 's/ $//') TWEET="""\ ${DATE}に「${TITLE}」を視聴しました。 その他Infomation --- ${INFO} --- """ python posttw.py "${TWEET}"
映画情報を打ってみます。
(これも好きな映画)
ちなみに本件用にvenvで仮想環境構築してます。
(tweetpy) masashi@PC-ubuntu:~/tweetpy$ bash twmovieinfo.sh pulp fiction
OK!
2019-08-24に「Pulp Fiction」を視聴しました。
— masashi (@palomax69) August 24, 2019
その他Infomation
---
Year: 1994
Genre: Crime, Drama
Director: Quentin Tarantino
Actors: Tim Roth, Amanda Plummer, Laura Lovelace, John Travolta
Production: Miramax Films
---
まとめ
難しいことはしていませんが、API部分は意外とサクッと作れてしまいました。
今回のツールはtweetするだけですが、APIを使っての操作ということでようやく今時っぽい(?)ツールが作れました。
元々記録するだけの予定でしたが今年は何本見たのか、よく見るジャンルは、監督は…などの集計もできそうですね。
というわけで今日から運用したいと思います。