Google Sheets API の使い方

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

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

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

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

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

まずはプロジェクトを作成します。

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

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

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

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

Google Sheets API の有効化

Google Sheets APIを検索して,Google Sheets APIをクリック

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

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

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

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"
    ]
  ]
}

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

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

コメントを残す