Node.jsでGoogle APIをOAuth2.0認証してAPIを使う方法
GoogleのサービスをNode.jsで操作したいなと思いました。当記事ではNode.jsでGoogle APIをOAuth認証して、APIを使うところまでの手順をまとめてみたいと思います。
今回はGoogleウェブマスターツールにあるSearch Consoleの検索アナリティクスを、Node.jsから取得する方法を例として話を進めていきます。
目次
今回の大まかな流れ
今回はNode.jsでGoogle APIを操作するために必要な認証や情報を取得していきます。その流れは下記の通りです。
- Google Dev Consoleを開く
- 認証アプリケーション(プロジェクト)を作成
- 認証クライアントIDとシークレットキーを取得
- OAuth認証後、リレフッシュトークン取得
- トークンを利用してNode.jsでAPI操作(別記事)
それでは詳しく見ていきましょう。
Goolge Developers Consoleを開く
Node.jsでSearch Consoleをコントロールするには、まずクライアントIDとクライアントシークレットを取得していきます。Goolge Developers Consoleを開きましょう。
プロジェクトの作成
まずはロゴの右側にあるプロジェクト名を選択後、表示される+ボタンでプロジェクトを新規作成します。
作成するプロジェクト名を聞かれますので、今回は一例としてMySearchConsole
と入力し、作成します。
プロジェクトが作成されるまでに数十秒かかります。プロジェクトが作成されたらライブラリ
メニューから作成したプロジェクトを選択しておきましょう。
APIのIDとシークレットキーを取得
続いて、操作したいAPIを選択していきます。今回はSearch Console APIを操作しますので、検索欄に「Search Console」と入力してGoogle Search Console API
を選択します。
APIを有効にするかを聞かれますので、有効にします。
認証情報を作成します。
「プロジェクトへ認証情報の追加」という画面が表示されますので、使用するAPIやAPIを呼び出す場所を指定します。
今回はコマンドライン(ターミナル)からAPIを呼び出しますので、下記のような項目に設定します。
選択項目 | 内容 |
---|---|
仕様するAPI | Google Search Console API |
APIを呼び出す場所 | その他のUI(Windows、CLIツールなど) |
選択後、上記画像のように必要な認証情報を選択して、次の項目に進みます。
続いて、下記画面のようにクライアントIDの作成を選択します。
次の項目で、認証時に表示させるサービス名を入力していきます。今回は一例としてmySearchConsole
と入力します。入力後次へを選択します。
プロジェクトの認証情報を作る設定が以上で完了しました。最後に完了を選択します。
APIマネージャートップに移動しますので、最後に、先程作成したクライアントIDを選択します。
クライアントIDを選択すると、クライアントID
とクライアント シークレット
が表示されますので、これをメモします。
リフレッシュトークンを取得する
前回までの手順で、Google APIのクライアントIDとクライアントシークレットを取得していきました。最後に、Node.jsでリフレッシュトークンを取得していきます。
Node.jsとコマンドラインについては下記をご覧ください。
自身のブログ
コマンドラインを使ってみよう!Hexoの使い方と始め方
node.jsの開発環境を用意しよう。Hexoブログに必要なツールを揃える
任意のディレクトリでNode.jsのコードを書いていきますので、必要なファイルを作成していきます。
1 | $ mkdir your-dir |
続いて、get_token.js
を下記のように記述していきます。
1 | "use strict"; |
SCOPE
で指定しているAPIスコープについては、操作したいGoogleのアプリケーションによって異なりますが、下記が参考になります。
Google Identity Platform
OAuth 2.0 Scopes for Google APIs
Google APIのスコープ一覧です。Google DriveやAnaytics APIなどもあります。
上記のコードが記述できたら、node.jsを実行します。
1 | $ node get_token.js |
実行すると次のようなURLが表示されますので、指示通りブラグザで開きます。
1 | $ node get_token.js |
ブラウザでURLを開くと、次のような画面が表示され、認証許可を求められますので許可をします。
認証の許可後、コードが表示されますのでコピーします。
最後に表示されたコードをコマンドラインに入力します。
1 | $ node get_token.js |
コードを貼り付けると、アクセストークンとリフレッシュトークンが取得できます。refresh_token
の内容をメモしておきましょう。
1 | $ node get_token.js |
以上の手順で、リフレッシュトークンが取得できました。次回はリフレッシュトークンを使って、node.jsで実際にAPIを操作していきたいと思います。
参考にさせて頂いた記事
下記の記事を参考にさせて頂きました。ありがとうございます。
Qiita
Google Drive Web APIを使う(node編)
Goolge Drive Web APIで画像をアップロードする例を扱った解説。アクセストークンを取得する方法やスコープを解説している。
前述しましたが、Google APIのOAuth2.0スコープの一覧です。
Google Identity Platform
OAuth 2.0 Scopes for Google APIs
Google APIのスコープ一覧です。Google DriveやAnaytics APIなどもあります。