0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【楽天API】新しくなったAPI で Headerにaccess keyを付与して実行してみたが通らなかったので試行錯誤してみた

0
Last updated at Posted at 2026-02-27

目次

  1. 初めに
  2. 前提
  3. やったこと
    1. 公式ドキュメント通りやってみる
    2. メッセージ通りにやってみる
  4. 結論
  5. 参考URL

初めに

2026年5月を目処に楽天APIの旧ドメインが新しくなるということで、仕様書とにらめっこが始まったのですが、新しいAPIの調査の段階でメンバーから「AccessKeyをヘッダーに含めると商品検索のAPIが実行できない」というメッセージがslack上に流れていました。

まじか。。。と思いながら、調査ログを見つつ自身の環境で試してみたところうまくいかなかったので、その備忘録を書いておきます。同じ現象に遭遇した方の役に立てば幸いです

前提

  • 検証環境
    • ローカル環境(Mac)
    • CURL

やったこと

とりあえず公式ドキュメント通りやってみる

公式ドキュメントには Authorization: Bearer {accessKey} と書かれていたのでその通りにやってみたところメンバーが話して通りうまくいかず、Authorizationを付けているのに「accessKey が無い」と言われます。

リクエスト(検索キーワードは「福袋」)

curl 'https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20220601?applicationId=【登録したアプリケーションID】&keyword=%E7%A6%8F%E8%A2%8B&hits=1'
-H 'Authorization: Bearer xxxxxxxx'

レスポンス

{
  "errors": {
    "errorCode": 400,
    "errorMessage": "accessKey must be present as a query parameter or in the header"
  }
}

メッセージ通りにやってみる

メッセージを読み返してみると、「アクセスキー(accessKey)は必須です」と書いてありました。まあよくあるエラーメッセージではありますが、あえてメッセージをそのまま解釈して「accessKey」っていうヘッダーがないとダメなんじゃないのか?と思い立ちやってみた結果・・・

リクエスト

curl 'https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20220601?applicationId=【登録したアプリケーションID】&keyword=%E7%A6%8F%E8%A2%8B&hits=1'
-H "accessKey: 【登録したアクセスキー】'

レスポンス

{
  "errors": {
    "errorCode": 403,
    "errorMessage": "REQUEST_CONTEXT_BODY_HTTP_REFERRER_MISSING"
  }
}

お!メッセージが変わった!!
次のメッセージをググってみると、同じように嵌ってる人がいたのでそちらを参考に実行してみたところ・・・

リクエスト

curl 'https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20220601?applicationId=【登録したアプリケーションID】&keyword=%E7%A6%8F%E8%A2%8B&hits=1'
-H "accessKey: 【登録したアクセスキー】'
-H 'Origin: 【登録したアプリケーションURL】'

レスポンス

{
  "count": 85814,
  "page": 1,
  "first": 1,
  "last": 1,
  "hits": 1,
  "carrier": 0,
  "pageCount": 100,
  "Items": [
    {
      "Item": {
        "itemName": "xxxxxxxxxxxx",
        "catchcopy": "xxxxxxxx",
        ・
        ・
        ・

:hand_splayed:検索できた〜〜〜〜:hand_splayed:

結論

  • Authorizationヘッダーではなく、accessKeyヘッダーをつけましょう
  • 楽天の検証用スクラッチパッドとかもクエリパラメータでの実行になってるのでそっちで対応するのが無難

API実装では、ドキュメントの記載と実際の挙動が微妙に異なるケースもあります。

今後変更が入る可能性もあるため、利用時は最新の挙動をご確認ください。 :bow:

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?