HttpStatus:429が返った場合のcode値の取得方法に関して - トークBot - LINE WORKS Developers : コミュニティ

HttpStatus:429が返った場合のcode値の取得方法に関して

Koshi検証用

2021.08.26既読 313

お世話になります。

タイトルの通り「code値の取得方法」に関してご教授ください。

HttpStatusで429が返るパターンは下記3通りあるので
サーバ側で個別に対応をするための判別手段としてcode値を使用したいと思っています。
---------------------------------------------
①Rate Limit超過
②一日あたりのクォータ(最大回数の制限)超過
③同時接続数の超過
---------------------------------------------

↓この「コード:092」を取得したいと考えています。
コードREST API RESPONSE コードメッセージ説明
092429API rate limit exceededRate Limit 超過
※PostManを使用して実際にRate Limit超過を起こしましたが
レスポンスは下記の値でcodeは含まれていませんでいた。
---------------------------------------------
{
    "code""TOO_MANY_REQUESTS",
    "domain""common",
    "message""API rate limit exceeded"
}
---------------------------------------------
※code値以外にも①~③を判別する手段があればそちらでも大歓迎です。
ご教授お願い致します。

コメント9

  • 업데이트 된 답글입니다.

    kuga

    前に遭遇したことがあるメッセージです。

    多分、REST APIを呼び出す場合(https://apis.worksmobile.com/r/ ....) はHTTPコード値で返され、code欄では文字列が見れます。
    そして、旧API(URLに「/r/」を含まない)の応答はcodeで「092」が表示されます。

    2021.08.26

    1
  • 업데이트 된 답글입니다.

    Koshi検証用 投稿者

    kugaさん
    コメントありがとうございます。

    最新のAPIを使用した場合はレスポンスから「092」のようなコードは確認不可
    廃止予定の古いAPIでは確認可能
    と、いうことでしょうか?

    2021.08.26

    0
  • 업데이트 된 답글입니다.

    kuga

    ちょっと違う認識ですね。

    旧APIは {"code":}値で確認可能。
    そして、最新のAPIであればレスポンスのHTTPコードで確認できます。

    2021.08.26

    1
  • 업데이트 된 답글입니다.

    Koshi検証用 投稿者

    kugaさん
    回答ありがとうございます。

    「HTTPコード」がよくわからなかったのですが(HTTPステータスコードならわかるのですが、、、、)
    どのようにすれば確認できるのでしょうか?
    サンプルソースなどあればご提供いただけないでしょうか?

    2021.08.26

    0
  • 업데이트 된 답글입니다.

    kuga

    あ、今わかりました!
    HTTPコード=HTTPステータスコードですよね。 失礼しました!!

    2021.08.26

    1
  • 업데이트 된 답글입니다.

    Koshi検証用 投稿者

    kugaさん

    HTTPステータスコードで429は確認できるのですが、
    肝心の「コード(092とか)」が確認できなくて困っています。

    コードを取得して投稿欄の「①~③」を判別してそれぞれに処理を行いたいのです。

    何かご存じであればご教授お願いします。

    例)-------------------------------------------------------------------------------
    「①Rate Limitの超過」であればしばらく待機して再送信しますし
    「②一日あたりのクォータ(最大回数の制限)超過」であれば画面に警告表示して処理を終了します。

    2021.08.26

    0
  • 업데이트 된 답글입니다.

    kuga

    URLに「/r/」を含むAPIのレスポンスは「092」の代わりにHTTPステータスコード「429」で判別できますよ。

    2021.08.26

    1
  • 업데이트 된 답글입니다.

    Koshi検証用 投稿者

    kogaさん

    投稿文にも記載した通り「429」が返るのは3つのパターンがあります。
    その3パターンを判別するためにコード値を取得したいのです。

    ---------------------------------------------
    ①Rate Limitの超過
     ⇒ コード値:092
    ②一日あたりのクォータ(最大回数の制限)超過
     ⇒ コード値:085
    ③同時接続数の超過
     ⇒ コード値:084
    ---------------------------------------------

    2021.08.26

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    こちらの3つの Error Response は以下のようになります。

    ①一定時間内に実行可能な API 呼び出し回数超過(Rate Limit)
    httpStatus: 429, code: TOO_MANY_REQUESTS, message: API rate limit exceeded

    ②一日あたりのクォータ(最大回数の制限)超過
    httpStatus: 429, code: TOO_MANY_REQUESTS, message: Daily quota fail

    ③同時接続数超過
    httpStatus: 429, code: TOO_MANY_REQUESTS, message: Concurrent access fail

    message の値で判別することができます。
    ご参考ください。

    2021.08.27

    1
前の投稿 lineworks トーク Botは、グループトークルームに登録できませんか?
次の投稿予定作成APIについて