前回
前回はpythonで定期的な動作を実装しました。
これで例えば10分毎に撮影し、画像をLINEすることができます。
今回
LINE NotifyのAPI制限を確認します。
画像のアップロード枚数制限やAPIのコール回数制限があります。
テストで画像を送りまくっていると制限にかかり、送れなくなります。
突然送れなくなるので、注意が必要です。
APIコール回数は1000回ですのでそうそう消費しないと思います。
ですが、画像のアップロード枚数制限は50枚(1時間あたり)です。
案外すぐ達してしまうのでモニターすることをオススメします。
ドキュメントのAPI Rate Limitに記載があります。
各サービスごとに1時間にAPIをcallできる回数の上限が設定されています。 デフォルトは1000回に設定されています。
上限はaccess tokenごとに設定されています。
API Rate Limitのstatusは、APIの以下のresponse headerで確認することができます。
API Rate Limitの確認方法
こちらを参考にさせていただきました。ありがとうございます(^^)
# line-notify-limit.py
import requests
token = 'あなたの取得したトークン'
api = 'https://notify-api.line.me/api/notify'
message = '\n\nLIMIT CHECK'
headers = {'Authorization': 'Bearer'+' '+token}
data = {'message': message}
resp = requests.post(api,headers=headers,data=data)
print(message)
# APIコール残
ratelimit = resp.headers.get("X-RateLimit-Limit") # max API call
ratelimit_remaining = resp.headers.get("X-RateLimit-Remaining") # API call remaining
print('API call remaining : {} / {}'.format(ratelimit_remaining,ratelimit))
# 画像うp残
ratelimit_image = resp.headers.get("X-RateLimit-ImageLimit") # max image upload at 1hour
ratelimit_image_remaining = resp.headers.get("X-RateLimit-ImageRemaining") # image upload remaining
print('Image upload remaining : {} / {} by an hour'.format(ratelimit_image_remaining,ratelimit_image))
# リセット時間
ratelimit_reset = resp.headers.get("X-RateLimit-Reset") # reset time UTC
print('Reset time UTC : {}'.format(ratelimit_reset))
# ステータスコード
print('HTTP status code : {}'.format(resp.status_code)) # HTTP status code
以上(^^)