みの雑多ブログ

勉強したことをアウトプットしたり、しなかったり

BacklogAPIの課題追加でUrlFetchApp.fetchして出会ったエラー集

developer.nulab.com

BacklogAPI便利ですよね。

APIを使う上で色々出くわしたエラーとそのときの対応策

①URL長すぎ

Exception: 上限を超えています: URLFetch URL の長さ

URLが2KB超えると、エラーになる。
テンプレの内容を課題の詳細に設定したりすると超えたりする。
URLが長い原因として、URLにパラメータ付与してGETリクエストにしていることがある。
GETリクエストではなく、POSTに切り替える。


②項目ないっすよ

muteHttpExceptions: trueにして、返ってきたレスポンス

400 "errors":[{"message":"Expect [項目名].","code":7,""}

必須項目がないですよと言われている。
確かに設定していない、という場合は、リクエストに[項目名]を追加する。
[項目名]リクエストに含んでるのになぁ、って時は、Content-Typeでしている形式とリクエストの形式が正しいかチェック(無駄にここで詰まってしまった)

"Content-Type" : "application/x-www-form-urlencoded"なのに、JSON形式で送ろうとしてしまってた。
developer.mozilla.org


③形式違うっすよ

400 "errors":[{"message":"error.invalid : [項目名]","code":7,"moreInfo":"[項目名] requires number. Raw input: [値].0"}

修正している間に出てきたエラーで、UrlFetchApp.fetchはなぜか整数じゃなくて小数点第一位付きに変換するみたい。というのが分かっただけの例
これ自体がエラーの課題ではなかったが、一応メモとして残す。