ChatWork API の利用制限の確認方法


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制限をもうちょっと引き上げてもらいたいです><