アプリケーション関連¶
本節では Twitter REST API の application 系機能について記す。と言ってはみたものの、実のところ利用するものは一つだけだ。
GET application/rate_limit_status¶
GET application/rate_limit_status は現在の API 利用制限状況を知る機能だ。例えばツイートを短時間に連続投稿するには限度があるわけだが、今からどのくらいの時間帯にどれだけツイートすることが可能かを具体的に知ることができる。
#!/usr/bin/env python
# Demonstration GET application/rate_limit_status
# See https://dev.twitter.com/rest/reference/get/application/rate_limit_status
from secret import twitter_instance
from json import dump
import sys
tw = twitter_instance()
# [1]
resource_families = ('lists,' 'users', 'statuses', 'search')
csv = ','.join(resource_families)
# [2]
response = tw.application.rate_limit_status(resources=csv)
# [2]
dump(response, sys.stdout, ensure_ascii=False, indent=4, sort_keys=True)
[1] 状況を知りたい機能の一つ上位の単位の名前をいくつかまとめる CSV 文字列を組む。欲張って全部のインターフェイスを指定するとおそらく良くないことが起こる。
[2] パラメーター
resources
として CSV 文字列を与え、リクエストを送信する。[3] 受信内容を出力する。
次に実行例を示す。長くなるので一部を省略する。
bash$ ./application-rate_limit_status.py
{
"rate_limit_context": {
"access_token": "..."
},
"resources": {
"lists": {
"/lists/list": {
"limit": 15,
"remaining": 15,
"reset": 1450622609
},
...
},
"search": {
"/search/tweets": {
"limit": 180,
"remaining": 180,
"reset": 1450622609
}
},
"statuses": {
"/statuses/friends": {
"limit": 15,
"remaining": 15,
"reset": 1450622609
},
...
},
"users": {
"/users/derived_info": {
"limit": 15,
"remaining": 15,
"reset": 1450622609
},
...
}
}
}
ここで reset
だけがわかりにくいので説明を加える。これは利用制限の再設定がかかる時刻を POSIX 時刻表現で表した数値だ。見慣れた時刻表現にするならば、Python 標準のメソッド datetime.datetime.fromtimestamp
を利用する等の方法がある。
>>> import datetime
>>> datetime.datetime.fromtimestamp(1450622609).strftime('%c')
'Sun Dec 20 23:43:29 2015'