Googleスプレッドシートのデータを取得するAPIの作り方


Googleスプレッドシートのデータを取得するAPIは、とても手軽なので、簡単なプロトタイピングを作るのに重宝してます。
都度、やり方をど忘れしてるので、Qiitaに備忘録として残します。


## ＡＰＩ発行

Google Cloud Platform を開く
https://console.cloud.google.com/apis/dashboard

以下の画像の矢印のところをクリック
[![Image from Gyazo](https://i.gyazo.com/13f2604ea5db5e25bc2364c94d129866.png)](https://gyazo.com/13f2604ea5db5e25bc2364c94d129866)

「新しいプロジェクト」をクリック
[![Image from Gyazo](https://i.gyazo.com/7b2add2ac3508b881b74bef478b4b38f.png)](https://gyazo.com/7b2add2ac3508b881b74bef478b4b38f)

新しいプロジェクトができたら



「ＡＰＩとサービスの有効化」
[![Image from Gyazo](https://i.gyazo.com/8f17f2f9539e8ab34cbc77cf70601b65.png)](https://gyazo.com/8f17f2f9539e8ab34cbc77cf70601b65)

APIライブラリが開いたら、
「Google Sheets API」 を検索
[![Image from Gyazo](https://i.gyazo.com/e0dbfea7ebada5bef5d9ad61c60f9306.png)](https://gyazo.com/e0dbfea7ebada5bef5d9ad61c60f9306)

「Google Sheets API」をクリック
[![Image from Gyazo](https://i.gyazo.com/1a37aa056847bdba0e7fc71542b61bfc.png)](https://gyazo.com/1a37aa056847bdba0e7fc71542b61bfc)

「Google Sheets API」の
「有効にする」をクリック
[![Image from Gyazo](https://i.gyazo.com/2f9cf13739d7b137d5790ec84f52ebd9.png)](https://gyazo.com/2f9cf13739d7b137d5790ec84f52ebd9)

認証情報 ＞ 認証情報を作成
[![Image from Gyazo](https://i.gyazo.com/513c790696909dbf537226d540b677e4.png)](https://gyazo.com/513c790696909dbf537226d540b677e4)

APIキーを選択
[![Image from Gyazo](https://i.gyazo.com/d1d04f295a90c770cfe7ed265148ac5a.png)](https://gyazo.com/d1d04f295a90c770cfe7ed265148ac5a)

APIキーができる。
[![Image from Gyazo](https://i.gyazo.com/666cd67663c2810029d09aab4a10bcaa.png)](https://gyazo.com/666cd67663c2810029d09aab4a10bcaa)

API キーを控えておく



## Google Spread Sheet　

Google Spread Sheet で新規作成し、
シートの中身を入力したら、
右上の「共有」をクリック
[![Image from Gyazo](https://i.gyazo.com/7a7b6c80969da24d08c60ad8d80a25ba.png)](https://gyazo.com/7a7b6c80969da24d08c60ad8d80a25ba)

閲覧権限を、「リンクをしってる全員」に変更し、リンクをコピーする。
[![Image from Gyazo](https://i.gyazo.com/96716d088bb23dafc29d5d10e100159d.png)](https://gyazo.com/96716d088bb23dafc29d5d10e100159d)

コピーしたリンク

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

<br>
これであとは、こちらのURLを呼べば、スプレッドーシートの情報がJSON形式で取得できます。

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


<br>
API作るのが、知らない間に以前より凄く簡単になってますね。

<br>
<br>

## 追記　：node.js でデータとして使うには

たとえば、GoogleSpreadSheet に以下入力してるとする。
![スクリーンショット 2022-07-07 19.00.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/291592/5091d3e6-90db-0cb1-cd85-5f8d5755e31a.png)

これのAPIをよぶと
```
{
  "range": "sheet1!A1:Z1008",
  "majorDimension": "ROWS",
  "values": [
    [
      "ID",
      "名前",
      "性別",
      "生まれた年"
    ],
    [
      "1",
      "山田太郎",
      "男性",
      "1970"
    ],
    [
      "2",
      "広島花子",
      "女性",
      "1980"
    ]
  ]
}
```



```main.js
'use strict';

const request = require('request-promise');

const apiURL="https://sheets.googleapis.com/v4/spreadsheets/｛スプレッドシートID｝/values/｛シート名｝?key=｛APIキー｝";

  var options = {
    url: apiURL,
    method: 'GET',
    json: true
  }

  request(options).then(function (body) {
    
    let bodyStr = JSON.stringify(body); //JSON 文字列に変換
    let bodyJson = JSON.parse(bodyStr); //Parseする

    let range = bodyJson.range;
    let values = bodyJson.values;

    console.log(values[1][1]);  //山田太郎を表示
    console.log(values[2][1]);  //広島花子を表示

   })
   .catch(function (err) {
        console.log(err);
   });

```

　以上

<br>