前回

前回は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

以上(^^)