今回は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を取得します。
いろいろあるのですが、今回は以下を使います。
get | GET / スプレッドシートから値の範囲を返します。 |
その他のエンドポイントは以下のリファレンスを見てください。
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"
]
]
}
スプレッドシートに入力した値が以下のように取れました。
今回は値の取得の例でしたが、リファレンスに色々書いてあるので試してみてください。