Google OAuthでAccess Tokenを取得する|Google APIを利用するための準備編

はじめに

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を取得する手順について解説します。

 

MEMO

本記事ではGoogleアカウント作成がすでに完了している前提で

解説します。

また

本記事ではGoogle Drive APIを利用するために

Access Tokenを取得するまでの解説を行います。

 

2022/3/26追記

KeycloakでSpring Bootで作成したRestAPIを保護、

SPAにKeycloakのSSO機能でログイン機能を追加、

OIDCやOAuth2.0の違い解説などなどをまとめたまとめ記事を作りました。

興味のある方は是非みてください!!

Keycloakで認証認可!!|APIの保護〜SPAのログイン機能、OIDC、 OAuthなど解説まとめ記事

 

 

OAuthとは

OAuth(オーオース)とは、インターネット上のさまざまなサービスを

シームレスに連携させる仕組みです。

 

通常、Webサービスを利用するためは、サービス毎にアカウントを作成し、

ユーザーIDとパスワードを入力してユーザーを認証する必要があります。

 

OAuthを利用することで、IDやパスワードを入力することなく、

アプリケーション間を連動させることができます。

 

例えば

ブログ作成ツールを利用してブログ記事作成し、

記事を書いたらSNSにその旨をツイートしたいケースをイメージしてください。

 

 

OAuthでブログ作成ツールとSNSを連携させると、

 

 

ユーザーがブログ作成ツールに記事を投稿すると、

自動でSNSへのツイートまで行えるようになります。

 

OAuthの仕組み

OAuthの仕組みをざっくりと絵にするとこんな感じです。

 

 

ブログ作成ツールがSNSへツイートするためには、

上の2〜4のようにアクセス認可をしてもらう必要があります。

 

ブログ作成ツールからSNSへのアクセス認可が完了すると、

ブログ作成ツールはツイートできるようになります。

 

本記事ではこの2〜4までの作業を行うイメージです(5を行うための準備まで)。

 

 

Google OAuthでAccess Tokenを取得する手順

 

手順は以下です。


  1. プロジェクト作成
  2. API有効化
  3. 認証情報(クライアントID)作成
  4. APIアクセスAuthorization Code取得
  5. 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で以下を開きます。


url
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のトークンエンドポイントをコールします。

 

command
$ 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でメモしたクライアントシークレットキー

 

MEMO

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を利用するアプリを作ってみてください!!

1 COMMENT

アバター yamada

ただでさえ意味が分からない中
すごく助かりました。
Access Token取得できて感動でした。
(どう使うかまだ全然わからないんですけどね(^_^;))
Windowsでcurlをどうやって実行するのか全然わからなくて
そこだけ他サイトを参考にさせていただきました。
大変ありがとうございました。

返信する

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください