Google Sheets API の使い方

今回はGoogle Sheets APIを使ってみたいと思います。

Google Sheets API は、Googleスプレッドシートのデータを扱うインターフェースです。

Google Sheets APIを使うことで、Googleスプレッドシートの作成、セル値の読み取りと書き込みなどをスプレッドシートをプログラムから操作するができます。

Google Sheets API の設定

Google スプレッドシートを API で操作するには、事前に Google Sheets API を有効にし認証情報を設定する必要があます。

Google Sheets API の設定はGoogle Cloud Platform上で行います。

https://console.cloud.google.com/

登録していない方は無料トライアルから始めてください。

Google Sheets API のみ使う場合は、記事を書いている時点で課金はありません。

使用上限については以下を参照

https://developers.google.com/sheets/api/limits?hl=ja

プロジェクトを新規作成する

まずはGoogle Cloud Platformでプロジェクトを作成します。

https://console.cloud.google.com/

開いたダッシュボードから、「プロジェクトの選択」をクリックします。

新しいプロジェクトを押します。

任意のプロジェクト名を入力して作成を押します。

Google Sheets API の有効化

Google Sheets APIを検索して、「Google Sheets API」をクリック

見つからない場合は、以下をクリックするといけます。

https://console.cloud.google.com/apis/library/sheets.googleapis.com

「有効する」を押します。


Google Sheets APIキーの発効

左メニューからAPIとサービス、「認証情報」をクリックします。

青色の「+認証情報を作成」をして、APIキーをクリックします。

この画面までいけば完了です。

コピーしておいてください、

サービスアカウントの作成


認証情報の上の青色の「+認証情報を作成」をして、サービスアカウントをクリックします。



アカウント名、アカウントIDを入力して続行を押します。

その後完了を押します。

メールアドレスをコピーしておいてください。

スプレッドシートの設定

実際に取得したいスプレッドシートを作成します。

適当にスプレッドシートを作成してください。

シートが作成できたら右上の「共有」を押します。

上記に先ほど作成したメールアドレスを追加します。


権限は用途に合わせて選択してください。


次に共有設定で一般的なアクセスに箇所を「リンクを知っている全員」に変更します。

リンクをコピーしておきます。

APIでスプレッドシートの値を取得

Google Sheets APIのエンドポイントを使ってJSONを取得します。

いろいろあるのですが、今回は以下を使います。

getGET /v4/spreadsheets/{spreadsheetId}/values/{range}
スプレッドシートから値の範囲を返します。

その他のエンドポイントは以下のリファレンスを見てください。


https://developers.google.com/sheets/api/reference/rest

以下の感じで作ればオッケーなのでそれぞれ埋めてあげます。

https://sheets.googleapis.com/v4/spreadsheets/{スプレッドシートID}/values/A:F/?key={APIキー}

スプレッドシートIDはスプレッドシートのURLから確認できます。

https://docs.google.com/spreadsheets/d/{スプレッドシートID}/edit?usp=sharing

KeyはGoogle Cloud Platformで作ったAPIキーを入れてあげます。

rangeは取得したいスプレッドシートの範囲なので、スプレッドシートに適当に文字を入力してその範囲を指定してみます。

今回はA1:F1000を指定します。

ブラウザかプログラムで完成したURLを以下が出てきます。

{
  "range": "'シート1'!A1:F1000",
  "majorDimension": "ROWS",
  "values": [
    [
      "ID",
      "Q",
      "A",
      "TEST",
      "E"
    ],
    [
      "1",
      "2",
      "3",
      "4",
      "EEE"
    ]
  ]
}

スプレッドシートに入力した値が以下のように取れました。

今回は値の取得の例でしたが、リファレンスに色々書いてあるので試してみてください。

コメントを残す