Google スプレッドシートをAPIとして利用できるStein

TAGS

Google スプレッドシートをAPIとして利用できるStein カバーイメージ
  1. 1. Google スプレッドシート
  2. 2. Stein
  3. 3. 必須になるアセット
  4. 4. Howto
    1. 4.1. 追加(Create)
    2. 4.2. 読み取り(Read)
    3. 4.3. 更新(Update)
    4. 4.4. 削除(Delete)
    5. 4.5. 検索
  5. 5. 応用
  6. 6. 参考

Google スプレッドシート

  • 新規でGoogle スプレッドシートを作成する
  • 一行目がフィールド名になるようにデータを作成する(ex. titleとcontentの2データで構成)

  • Steinに登録するため、作成したスプレッドシートのURLを控えておく

Stein

  • Steinにアクセスしてアカウントを作成する ダッシュボード
  • Google スプレッドシートを、Steinに登録する
  • 発行されたAPI Keyを控えておく

必須になるアセット

<script src="https://unpkg.com/stein-js-client"></script>

Howto

当然CRUDメソッドがそれぞれ使用可能です。

追加(Create)

Add Rows to Sheet · Stein Docs

const store = new SteinStore("【API URL】");
store.append("【シート名】", [post])
    .then(res => {
        // done
        console.log(res);
    });

読み取り(Read)

Read Data from Sheet · Stein Docs

<script src="https://unpkg.com/stein-expedite@0.0.1/dist/index.js"></script>

タグの前に次のjsを読み込むだけで

<div data-stein-url="【API URL + シート名】">
    <div>
        <h3>{{title}}</h3>
        <p>{{content}}</p>
    </div>
</div>

これだけの記述で、表示が確認できるかと思います。

更新(Update)

Update Rows · Stein Docs
contentフィールドが『content01』の行のデータを検索
このデータのtitleフィールドを『TITLE01』に更新する

const store = new SteinStore("【API URL】");
store.edit("【シート名】", {
        search: { content: "content01" },
        set: { title: "TITLE01" }
    })
    .then(res => {
        // done
        console.log(res);
    });

削除(Delete)

Delete Rows · Stein Docs
contentフィールドが『content01』の行のデータを検索
このデータを削除する

const store = new SteinStore("【API URL】");
store.delete("Sheet1", {
        search: { content: "content01" },
    })
    .then(res => {
        console.log(res);
    });

検索

Search for Data · Stein Docs

応用

また、GASと併用することで、無料枠超えそうな場合に
Slackに通知するなどが可能かと思います。
プラン

無料枠を超えると、エラー返すようなので、
最低限のエラーハンドリングは必要かなと思います。

What happens when I exceed my quota?
You can trigger this when your sheet outgrows the supported row count,
or when you exceed the number of requests allowed on your account.
In both of these cases, further API requests will be denied with an HTTP 429 Error until the problem is fixed.
API request counts reset every month.

参考

そもそもが使い易いし、公式ドキュメントみるのが一番いいですね。
Stein 公式ドキュメント

TAGS

RECOMMEND