[郵便局API] 郵便番号・デジタルアドレス for Biz の仕様が変わった気がするので備忘録
郵便番号・デジタルアドレス for Biz を思い出して
みんな忘れているかもしれないので貼っておきます。詳細は下記ページを参照してください。
検証用APIで動作検証
ご存じかもしれませんが、こちらのAPIは利用するには「ゆうID」の登録と、事業者としての登録がないと利用できません。というわけで、会社にお伺いを立てて、法人登録させてもらい動作検証ページを作成しておりました。
ちなみにCORS制約の都合上、フロントから自前で作成したPHPファイルを介してAPIにリクエスト送信するしくみで検証できました。6月まではね。
通信できなくなった
7月に入ってしばらくして、先週ひさびさに動作確認を行ったところ、認証トークンの取得に失敗する。どうして? 先月までは動いていたのに。改修もしていないのに。
エラーコードは403、そもそもトークンの取得ができないというか、APIに拒絶されているではないか。
原因を突き止めた
原因は私のPHPのコードが悪かった。curlのcurl_setoptの記述が不十分だったようです。
url_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Accept: application/json',
'User-Agent: curl/7.81.0' // ここを追記したらレスポンスが返ってきた
]);
普段から User-Agent の記述をすっ飛ばしている報いでした。こうしてさらっと今回の原因を書いておりますが、突き止めるのに2営業日かかりました。まぁ困るのは自分だけなのでいいのですが。
仕様変更?
でもこれって、6月までは User-Agent の記述なしでも動いていたわけで、郵便局さんによるステルス仕様変更ですか? 言ってくれないと困ります><
追記: 2025/07/18
郵便局からの回答がありました。やはり仕様変更していたそうです。
そもそも、本番用APIでははじめから User-Agent がない場合はAWSからブロックされる仕様だったらしい。ただ、私はまだ検証用APIしか触れていなかったので知らなかった。
そんなわけで、軽微な仕様変更として、検証用APIにも本番用APIと同等のWAFを導入したそうです。
これから検証用APIで動作検証する方、User-Agent は忘れずに。以上。
Discussion