Authorization Code GrantでAccess Tokenを取得するまでの大雑把な流れ
どうも、こんにちは。
今、作っているAmazon用のアプリケーションを以前のMWSからSP-APIというAPIに変えていっています。
今回は、Authorization Code Grantという認証方法を使った場合の流れについてメモしておきます。
どれほど需要があるのかは分かりませんが、私のように個人開発していて困っている人もいるかもしれませんし、ここはあまり参考記事が無く自分も色々テストしてみたところなので備忘録的なものとして残しておこうと思います。
前提として自己認可でaccenn tokenの取得はできるようになっているものとします。
まず、Authorization Code GrantでAuthorization Code(取得時のパラメータはspapi_oauth_code)を取得します。
ここまでも初めてやる人には難しいと思うのですが、長くなるので今回は割愛させていただきます。また後ほど記事にするかもしれません。
それで、このAuthorization Codeなのですが、これ自体はすぐに使えなくなります。これは初めは自己認可のrefresh tokenと同じものなのかなと思ったのですがそうではありません。確かによく考えてみればこのcodeをずっと有効にしておくのはまずいですよね。
なので、AuthorizationCodeを使ってAPIを叩くのに必要なAccess Tokenを取得しにいきます。
これについては、自己認可の時と同じようにPOST送信をして取得します。試しにPOSTMANを使うとテストできて良いと思います。
その時のパラメータは、
grant_type → authorization_code
code→ 取得したspapi_outh_code
client_id→ LWAで取得したもの(セラーセントラルのアプリの開発で取得したもの)
client_secret→ LWAで取得したもの(セラーセントラルのアプリの開発で取得したもの)
になります。
これでアクセスするとaccess_tokenとrefresh_tokenがもらえます。
このaccess_tokenは1時間有効なのでこれを使って自己認可の時と同様にAPIアクセスすることができます。
1時間経過後access_tokenが失効したらどうするのか
これについては、access_tokenを取得するときに同時にrefresh_tokenを取得しているのでこれを使うことになります。
このrefresh tokenをaccess_token取得時に同時に取得しておきます。
このrefresh tokenは自己認可の時に認証するときに必要なrefresh tokenと同じです。
refresh tokenは時間無制限です。
なのでaccess token が時間が経って失効したとはこのrefresh tokenを使ってaccess tokenを取得します。
この取得の仕方は自己認可の時と同様です。
アプリケーションを利用する場合にはずっと使い続けるので、このrefresh tokenを使っていくことになります。
以上になります。
コメント