macoblog

「ゲーム × プログラミング」で生きていく

【最新版】Google SpreadSheetのデータをJSONで取得する手順

プログラミング

この記事では、Google SpreadSheetのデータをJSONで取得する手順について解説しています。スプレッドシートからJSONを取得できない事で困っている方や、スプレッドシートをDB代わりにJSON取得したい方は是非参考にしてみてください。

※本記事では、GoogleSheetsAPI v4版の最新のJSON取得方法を紹介しています、今まで定番だった「ウェブ公開」での取得方法(GoogleSheetsAPI v3版)がここ最近で正式に廃止されたため、詳細についてはリンクを貼っておきます。

目次【本記事の内容】 [ click ]

Google SpreadSheetのデータをJSONで取得する手順

これまで多くの方が利用していたv3(GoogleSheetsAPI)でのJSONデータ取得手順は廃止されました(シートのウェブ公開を利用したやり方)、v4ではAPIキーを利用してJSONを取得する方法に変更されたので、今回はこの手順について紹介したいと思います。

  1. APIキーを発行する
  2. スプレッドシートを用意する
  3. 専用URLにアクセスする

①:APIキーを発行する

Google Sheets API v4からはAPIキーを利用してJSONを取得する必要があります、なのでGoogle Cloud PlatformにアクセスしてAPIキーを発行してください。アクセス後の手順についても具体的に解説しておきます。

①:プロジェクトを作成する

Google Cloud Platformでプロジェクトを作成する

Google Cloud Platformにアクセスしたら、プロジェクトを作成します、プロジェクト名は適当に付けましょう。

②:Google Sheets APIを有効にする

Google Cloud Platformで作成したプロジェクトにGoogle Sheets APIを入れる

作成したプロジェクトにAPIを導入します、ライブラリからGoogle Sheets APIを検索して有効化させます。

③:APIキーを発行する

Google Cloud PlatformでAPIキーを発行する①

最後にAPIキーを作成します、認証情報を作成からAPIキーを選択します。

Google Cloud PlatformでAPIキーを発行する②

APIキーが発行されたらGoogle Cloud Platformでの操作は完了です、発行したAPIキーは最後の手順「③:専用URLにアクセスする」で使います。

※APIキーは悪用を防ぐ為に必ず制限をかけてください、具体的には右下のキーを制限を押して、「アプリケーションの制限(呼び出し制限)」と「APIの制限(利用するAPIの制限)」を設定します。

②:スプレッドシートを用意する

スプレッドシートを用意する①

次にJSONとして取得するスプレッドシートの用意です、適当な名前でスプレッドシートを作成してスタッフというシートを用意しました、セルには名前と年齢という感じで適当にデータを入れました。ここまで用意できたら右上の共有を押します。

スプレッドシートを用意する②

一番下にあるリンクを知っている全員に変更を押して閲覧者の権限を付与します。ちなみに、Google Sheets API v3ではウェブ公開することでJSONデータを取得できました(廃止されたので現在は使えません)

取得した共有リンクにスプレッドシートIDがある

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

③:専用URLにアクセスする

JSON取得URL【テンプレート】

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

最後に、上記のJSON取得URLに各情報をセットした上でブラウザでアクセスすればJSONデータが返ってきます、先ほど発行したAPIキーとスプレッドシートの情報を使って実際にURLを完成させたのが下記になります。

JSON取得URL【実装例】

https://sheets.googleapis.com/v4/spreadsheets/awK9-egfuhwp8y9aO3JJfsifwio2eihfsefjseFKsif/values/スタッフ?key=jTrofwaJOpRp4wadUiwAqBs_SJGaf89kr28xsAT_p

スプレッドシートIDやAPIキーはダミーをセットしています、実際にブラウザで叩いてみると、、、

Google SpreadSheetのデータをJSONで取得

はい、しっかりJSONとして値が返ってきていますね。

WEBトマトWEBトマト

スプレッドシートから簡単にJSONデータを取得することができました、プログラミングでJSONを返すAPIを作るよりこっちの方が実装コストが少なく済むのでオススメです、是非参考にしてみてください。