ChatWork API の利用制限の確認方法
ChatWorkを活用していると時々データがロストしていることが発覚
なんでなんで、と調べているとChatWork APIには最大コール数というものが設定されており、
特定の時間内に最大までいってしまうとコールができないようです。
5分あたり100回までが公式で発表されているので、これを超えないようにします。
公式ChatWorkAPI説明
確認方法(実際に叩いてみた)
下記のコマンドで自分自身のAPI状況がわかりました。
curl -i -X GET -H "X-ChatWorkToken: 自分のAPI-KEY" "https://api.chatwork.com/v2/me"
正常な場合
Vary: Accept-Encoding,User-Agent
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 92
X-RateLimit-Reset: 1495072244
Content-Length: 498
Connection: keep-alive
X-RateLimit-Limit: 最大コール回数
X-RateLimit-Remaining: 残りコール回数
X-RateLimit-Reset: 次に制限がリセットされる時間(Unixtime)
上記の場合だとまだまだ全然大丈夫そう!
不正常な場合
Vary: Accept-Encoding,User-Agent
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 00
X-RateLimit-Reset: 1495092244
Content-Length: 498
Connection: keep-alive
X-RateLimit-Limit: 最大コール回数
X-RateLimit-Remaining: 残りコール回数
X-RateLimit-Reset: 次に制限がリセットされる時間(Unixtime)
上記の場合だとお亡くなりになってます・・・
回避方法(他にも多分あるだろうが)
- ChatWork APIを使うときは分間何件通知が来そうなのか予測することが必要
- それでもって5分間に100件超えないか予測をする
- 大量に通知を発生しうるBotがいれば、役割毎にBotを分けてAPI Key自体を分割させる
- とくに大事な通知(障害発生通知とか)と、複数来るようなあまり見ない通知は分けておかないと、いざという時に大事な通知が来ない・・・
まとめ
ChatWork便利だけど、このAPI制限をもうちょっと引き上げてもらいたいです><