Skip to content

Instantly share code, notes, and snippets.

@bouzuya
Last active August 29, 2015 14:12
Show Gist options
  • Save bouzuya/3c1b7f83351438070a6e to your computer and use it in GitHub Desktop.
Save bouzuya/3c1b7f83351438070a6e to your computer and use it in GitHub Desktop.
Google Sheet API 呼び出しメモ(途中)

Node.js で Google Sheet API を呼びだしてみた

概要

Google が公式にサポートしている Node.js 向けクライアントライブラリである「googleapis」を使って、Google Sheet API を呼び出してみたので、その手順をメモしておきます。

ちなみに googleapis は Google Sheet API をサポートしていないため、OAuth2 をサポートしたクライアントとして使用し、クライアントの提供する API ではなく HTTP リクエストレベルでの処理を記述していきます。

認証情報の取得

今回はバッチ処理のためのスクリプトで使うつもりなので、OAuth2 (RFC6749) の Grant Type で言うと Client Credentials Grant に相当するであろう Google API でいうところの「サービス アカウント」を使って認証します。

今回の実装で、この認証のために必要な情報は、次の 2 点です。

  • メールアドレス
  • プレーンテキストの秘密鍵 (pem ファイル)

上記の情報を取得していきます。

API クライアントの作成

Google Develepers Console (https://developers.google.com/console) にアクセスし、プロジェクトを作成しておきます。

プロジェクトから [API と認証] > [認証情報] > [OAuth] > [新しいクライアント ID を作成] とたどります。

[サービス アカウント] を選択して [OK] ボタンを押します。

p12 ファイルがダウンロードされ、パスワードが表示されます。

ここで手に入る情報のうち、利用するものは以下の 3 点です。

  • メールアドレス
  • p12 ファイル
  • p12 ファイルのパスワード (おそらく「notasecret」)

p12 ファイルを pem ファイルに変換

p12 ファイルはバイナリなので、pem ファイル(テキスト) に変換します。

これは環境変数 (文字列) で認証情報を渡せるようにするためです。

以下のコマンドで変換できます。

コマンド中の key.p12 には「 p12 ファイル」を、コマンド実行時に確認されるパスワードには「 p12 ファイルのパスワード (おそらく「notasecret」) 」を指定します。

$ KEY=$(openssl pkcs12 -in key.p12 -nodes -nocerts)

これで必要な認証情報がそろいました。

  • メールアドレス
  • プレーンテキストの秘密鍵 (pem ファイル)

Google Sheet API 呼び出しをするスクリプトの作成

スクリプトを作成していきます。

任意のディレクトリを作成し、npm init などで package.json を初期化しているものとします。

googleapis のインストール

googleapis をインストールします。詳細はリポジトリを参照してください。

https://github.com/google/google-api-nodejs-client

また今回のスクリプト用にいくつかライブラリを使っているので、それもインストールします。

$ npm install --save googleapis es6-promise xml2js

スクリプトの作成

メモ

http://blog.bouzuya.net/2014/03/21/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment