【Google API入門(1)】Google OAuthでAccess Tokenを取得してみる

はじめに

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を取得する前提で説明します。

 

 

環境

  • OS:OS X 10.11 El Capitan

 

 

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有効化

Drive APIを有効化します。

以上でAPIの有効化は完了です。

 

3.認証情報(クライアントID)作成

クライアントIDとクライアントシークレットキーを作成します。

以上で認証情報の作成は完了です。

※作成したクライアントIDとクライアントシークレットキーは後で利用するのでメモしておいてください。

 

3.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は後で利用するのでメモしておいてください。

 

4.Access Token取得

ターミナルを開いて以下コマンドを実行します。

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 Drive APIをコールしてみます!!!

 

1 Comment

yamada

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

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

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