会社行きたくなかったんです。

自由になりたくて会社辞めました

Yahoo! ビジネス

ヤフーショッピング 本番環境の注文APIの証明書による認証の有効期限延長の意味

更新日:

ヤフーショッピングAPIの「注文に関するAPI」のうち、orderList、orderInfo、orderChange
はリフレッシュトークンの有効期限が12時間です。(その他は4週間です。)
証明書認証を行うことで、12時間の有効期限を4週間に延長できます。
分かる人は一瞬でわかると思いますが、この意味を理解できず悩んでしまいました。

他で意味が理解できなかった方のためにまとめました。
まずは、ヤフーショッピングAPI利用の流れです。

ヤフーショッピングAPI利用の流れ

こちらのページにも書きましたが、以下のようになっています。

認可コードを取得

認可コードを使ってアクセストークン、リフレッシュトークンを取得

アクセストークンの期限が切れたら、リフレッシュトークンでアクセストークンを更新する

リフレッシュトークンの期限がきれたら認可コードを取得

認可コードを使ってアクセストークン、リフレッシュトークンを取得

アクセストークンを使って処理を行う(バッチ処理のメイン部分)

アクセストークンの期限が切れたら、リフレッシュトークンでアクセストークンを更新する

アクセストークンを使って処理を行う(バッチ処理のメイン部分)

リフレッシュトークンの期限がきれたら認可コードを取得

認可コードを使ってアクセストークン、リフレッシュトークンを取得

アクセストークンの期限が切れたら、リフレッシュトークンでアクセストークンを更新する

リフレッシュトークンの期限がきれたら認可コードを取得

………(以降同じ処理の繰り返し)

こちらのページに、

YConnectのみを利用する場合は、上記のAPIでは最大12時間で再認可が必要でしたが、YConnectと証明書を組み合わせることで最大4週間まで延長できます。

という記述があります。

これは、リフレッシュトークンの有効期限が通常は4週間ですが、以下の3つのAPIでは、12時間になってしまうという意味です。

  • 注文検索API (orderList)
  • 注文詳細API (orderInfo)
  • 注文内容変更API(orderChange)

証明書の利用により、リフレッシュトークンの有効期間が通常通り4週間になるということです。
意味がわかりませんね。

「アクセストークンの期限が切れたら、リフレッシュトークンでアクセストークンを更新する 」という処理において、どのAPIを使用するかどうかは関係ありません。

なので、12時間以上経過していても、アクセストークン更新のタイミングでエラーが発生することはありません。

しかし、12時間以上経過したリフレッシュトークンで更新したアクセストークンを注文検索APIで使用すると次のエラーが返ってきます。

<?xml version='1.0' encoding='UTF-8' ?>

<Error>

<Message>
AccessToken has been expired. This API session is shorter than another API.</Message>

<Code>
px-04102</Code>

</Error>

つまり、
リフレッシュトークンの有効期間が12時間で切れるのではなく、
12時間経過したリフレッシュトークンで更新したアクセストークンの有効期限は切れているという状態だということです。

まとめると次のようになります。

証明書を利用せずに取得したリフレッシュトークンを使用した場合、12時間経過するとリフレッシュトークンで更新したアクセストークンは注文検索API、注文詳細API、注文内容変更APIで使えない。

証明書を利用して取得したリフレッシュトークンを使用した場合、4週間以内は、リフレッシュトークンで更新したアクセストークンが全てのAPIにおいて有効。

結局、認可コードを使ってアクセストークン、リフレッシュトークンを取得する部分で、証明書を利用するようにすれば良いということがわかりました。

これ全部間違っていました。

注文検索API (orderList)、注文詳細API (orderInfo)、注文内容変更API(orderChange)を使用する時に、証明書を利用することで、12時間以上経過していても、エラーが発生することはないということでした。

アクセストークン取得、更新のタイミングでは、証明書を使う必要はありません。

-Yahoo!, ビジネス

Copyright© 自由になりたくて会社辞めました , 2024 AllRights Reserved Powered by AFFINGER4.