はじめに
GmailやGoogle Calender、Google Map、Google DriveなどのGoogleが提供するサービスは
普段よく利用しているかと思います。
Googleのサービスで作成したデータはGoogle APIを利用して取得したり、
Google APIを経由して登録したりできます。
これらのAPIを利用すればGoogleサービスと連携したアプリが作れます!!!
ということで、
今回は、Google API利用方法について解説いきたいところですが、、、
Google APIを利用するには事前準備がいろいろ必要で、、
本記事ではGoogle API事前準備編として、
Google OAuthでAccess Tokenを取得する手順について解説します。
本記事ではGoogleアカウント作成がすでに完了している前提で
解説します。
また
本記事ではGoogle Drive APIを利用するために
Access Tokenを取得するまでの解説を行います。
2022/3/26追記
KeycloakでSpring Bootで作成したRestAPIを保護、
SPAにKeycloakのSSO機能でログイン機能を追加、
OIDCやOAuth2.0の違い解説などなどをまとめたまとめ記事を作りました。
興味のある方は是非みてください!!

OAuthとは
OAuth(オーオース)とは、インターネット上のさまざまなサービスを
シームレスに連携させる仕組みです。
通常、Webサービスを利用するためは、サービス毎にアカウントを作成し、
ユーザーIDとパスワードを入力してユーザーを認証する必要があります。
OAuthを利用することで、IDやパスワードを入力することなく、
アプリケーション間を連動させることができます。
例えば
ブログ作成ツールを利用してブログ記事作成し、
記事を書いたらSNSにその旨をツイートしたいケースをイメージしてください。
OAuthでブログ作成ツールとSNSを連携させると、
ユーザーがブログ作成ツールに記事を投稿すると、
自動でSNSへのツイートまで行えるようになります。
OAuthの仕組み
OAuthの仕組みをざっくりと絵にするとこんな感じです。
ブログ作成ツールがSNSへツイートするためには、
上の2〜4のようにアクセス認可をしてもらう必要があります。
ブログ作成ツールからSNSへのアクセス認可が完了すると、
ブログ作成ツールはツイートできるようになります。
本記事ではこの2〜4までの作業を行うイメージです(5を行うための準備まで)。
Google OAuthでAccess Tokenを取得する手順
手順は以下です。
- プロジェクト作成
- API有効化
- 認証情報(クライアントID)作成
- APIアクセスAuthorization Code取得
- Access Token取得
1.プロジェクトの作成
Google Chromeを開き、googleアカウントでログインします。
ログインしたら、Developer ConsoleのAPI Managerを開きます。
プロジェクトを作成します。
プロジェクトを選択します。
以上でプロジェクト作成は完了です。
2.APIの有効化
利用するAPI(今回はDrive API)を有効化します。
以上でAPIの有効化は完了です。
3.認証情報(クライアントID)作成
クライアントIDとクライアントシークレットキーを作成します。
以上で認証情報の作成は完了です。
作成したクライアントIDとクライアントシークレットキーは
後で利用するのでメモしておいてください。
4.APIアクセスAuthorization Code取得
Google Chromeで以下を開きます。
https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=<クライアントID>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/drive&access_type=offline
- <クライアントID>:2でメモしたクライアントID
アカウントを選択してアクセスを認可します。
以上でAuthorization Code取得は完了です。
取得したAuthorization Codeは後で利用するので
メモしておいてください。
5.Acces Token取得
ターミナルを開いて以下コマンドを実行するか、
Chromeの拡張機能のTalend API TesterなどでGoogleのトークンエンドポイントをコールします。
$ curl --data "code=<Authorization Code>" --data "client_id=<クライアントID>" --data "client_secret=<クライアントシークレットキー>" --data "redirect_uri=urn:ietf:wg:oauth:2.0:oob" --data "grant_type=authorization_code" --data "access_type=offline" https://www.googleapis.com/oauth2/v4/token
{
"access_token": "○○○",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "○○○"
}
- <Authorization Code>:3でメモしたAuthorization Code
- <クライアントID>:2でメモしたクライアントID
- <クライアントシークレットキー>:2でメモしたクライアントシークレットキー
access_token
Google APIコール時のリクエストパラメータとしてセットする必要があります。
これでAPI利用ユーザとして認証してもらえます。
expires_in
access_tokenの有効期限です。3600[s]後には取得したaccess_tokenは無効になります。
refresh_token
有効期限が切れたaccess_tokenをリフレッシュする際に利用します。
以上でaccess_tokenの取得は完了です。
上記のrefresh_token、
access_tokenはメモしておいてください。
おわりに
今回はGoogle APIを利用するために必要な
Access Tokenを取得する手順について説明しました。
今回取得したAccess Tokenを使って、
Google APIを利用するアプリを作ってみてください!!
ただでさえ意味が分からない中
すごく助かりました。
Access Token取得できて感動でした。
(どう使うかまだ全然わからないんですけどね(^_^;))
Windowsでcurlをどうやって実行するのか全然わからなくて
そこだけ他サイトを参考にさせていただきました。
大変ありがとうございました。