Access Token さえあればいい
Google API を使うためには、Access Token という文字列さえあればOK。ただ、この Access Token を取得するための手続きが複雑というだけである。
Refresh Token
Access Token は使用期限がある。では、切れる度に新たに Access Token 取得の手続きを最初からやりなおすか?それはたいへん面倒。
Refresh Token を渡すと新しい Access Token をすぐに貰える。これだと期限切れでも素早く取り直すことができる。
(※ただし、一定の条件で Refresh Token も切れることはある )
Access Token 取得の手続き
ここが複雑なので、「Google API はなんだかややこしい」という印象になってしまう。
大きく分けると3ステップとなる。
- Client ID の登録
- 認可画面の表示と Authorization Code の取得
- Access Token の取得
Client ID の登録
これは Google Developer Console で Webブラウザ上で操作する くわしいやり方はアプリの種別によって異なるが、多くのサイトに書いてあるので調べるとすぐわかる。
(Google APIのAccess Tokenをお手軽に取得する - Qiita より引用)
認可画面の表示と Authorization Code の取得
Access Token を取得するために、Authorization Code を先に取得するが、これも Webブラウザ上で操作する
Client ID の情報と要求 scope あたりを特定の Google OAuth API に送ると、HTTP response header で Location: https://xxx...
という返信がくる。
このURLが認可画面の URL である。
ブラウザで開くと、「次のアプリの API 使用を許可しますか?」と出る。許可を押すと Authrization Code がもらえる。
Access Token の取得
Authorization Code を使って、やっと Access Token が得られる。
なぜ複雑に感じるか
「こんなに分かれてる必要なくない?」と最初は思った。
しかし、それは 「アプリ開発者」と「アプリ利用者」を一緒に考えてしまっているから
役 | 必要な操作 |
---|---|
アプリ開発者 | Client ID の取得 |
アプリ利用者 | Authorization Code の取得、Access Token の取得 |