(2020-09-13 初稿 - )
筆者は、twitterをライフログツールとして使おうかなと考えています。
これまでは、rubyのtwを便利に使わさせてもらっていました。
筆者はつぶやく回数が少ないので、1日のつぶやきの取得数が20でもほぼ困ることがないのですが、旅行や出張等でネットに繋げられない環境が重なった場合、過去のつぶやきが取得できなくなってしまう可能性がありました。
そこで、重い腰をあげて、スクリプトを作成しました。
ここでは、シンプルに自分のつぶやきを取得する方法を記述します。
なお、python-twitterの各APIの詳細を知りたい場合は、以下のページを。
user_timelineリクエストのレスポンスの詳細を知りたい場合は、以下のページを参考にしてください。
実のところ、スクリプトの作成よりも、twitterのAPI利用申請やAPIキー等の取得の方が、手間が掛かるかもしれません。(-_-;)
筆者も、readオンリーのスクリプトを登録してしまい、Read + Writeに変更したら、再度Authentication Tokensを取得し直すハメになりました。とほほ(-_-;)
twitter側で頻繁に仕様が変更されるようですが、以下のページ等を参考にチャレンジしてください。
それでは、以下に作成したスクリプトを示します。
cat p-tweet.py
#!/usr/bin/env python3
#coding: UTF-8
# メッセージをパイプで受け取りつぶやく
# ver0.01 2019-05-23 start
# ver0.02 2020-09-13 screen_nameの投稿を取得
import twitter
import oauthlib
import json
import sys
import time, calendar
# Constant
NAME = 'hymd3a' # 自分のアカウント名に変更
MAX_COUNT = 50 # 取得したいツィート数 max 200
def DateTime(created_at):
time_utc = time.strptime(created_at, '%a %b %d %H:%M:%S +0000 %Y')
unix_time = calendar.timegm(time_utc)
time_local = time.localtime(unix_time)
return time.strftime("[%Y-%m-%d %H:%M:%S]", time_local)
# 取得したキーとアクセストークンを設定する
# 以下の * は、自分のコードに変更してね
api = twitter.Api(consumer_key="*************************",
consumer_secret="**************************************************",
access_token_key="**************************************************",
access_token_secret="*********************************************")
# メッセージの取得
timeline = api.GetUserTimeline(screen_name=NAME,count=MAX_COUNT)
for tweet in reversed(timeline):
print(DateTime(tweet.created_at))
print(tweet.text)
print("Retweet: ", tweet.retweet_count)
print("Favorite: ", tweet.favorite_count)
【出力例】
[2020-09-13 13:15:06]
現在時刻は 2020-09-13 13:15:01 です。「ひゃまだ家」の部屋の 温度= 29.0 ℃, 湿度= 85.3 %, 飽差(HD)= 4.23 g/m3 で、Raspberry Pi3のCPU温度は temp=53.7'C です。(^^♪
Retweet: 0
Favorite: 3
APIにオプションがたくさんあるのに対し、アプリケーションの登録が面倒なので、投稿や取得、検索等の機能を盛り込んで行くと、かなり複雑なオプションを持つスクリプトになりそうです。
また、機能追加等したら追記します。