見出し画像

【Adalo】SheetDBを使いスプレッドシートのデータを取得した(その1)

私はAdaloの外部データベースとしてスプレッドシートを使うことが良くあります。ただ、Adaloからスプレッドシートに直接接続することは出来ないので連携プリのZapier、Integromat等を使うことがあるかと思いますが、それらの連携アプリは、無料で使える量が少ないのでスプレッドシートAPIを使って直接接続する方法を書いておきます。(Zapierは月100アクセスしか無料で出来ない)4回のシリーズものです。
(構成)
第1回:スプレッドシートのデータをAdaloに読み込む(GET)※本編
第2回:スプレッドシートにデータを追加する(POST)
第3回:スプレッドシートのデータをUpdateする(PUT/PATCH)
第4回:スプレッドシートのデータを削除する(Delete)

(API接続 関連ブログ)
・Adaloから直接airTableのデータを変更してみた  
・Sheetsonを使ってAdaloからスプレッドシートのデータを変更した 

(このページを読むと分かる事)
・スプレッドシートのデータをAdaloで読み込む方法
 →読み込んだデータを更新するやり方は別のページで説明しています。

(スプレッドシートAPIとは?)
Adalo等のNoCodeアプリからスプレッドシートにAPIを使って直接接続できるようにするAPIです。今まで以下のようなAPIを使いました。
1.SSSAPI(唯一の国産API)
2.SheetDB
3.Stein
4.Sheetson解説ページ
5.Sheet.best

今回はスプレッドシートAPIとしてSheetDBを使ったやり方を説明します。SSSAPIは国産のAPIで他は外国製(アメリカ?)です。SSSAPIはとても使いやすいのですが閲覧専用のAPIなのでデータの変更が出来ません。データを表示する時だけに使っています。

データの表示、変更の両方の機能を持ったAPIとしては2~5を今迄使ったことがありますが、使いやすさからするとSheetDBが一番いいのではないかと思います。(設定が簡単、分かり易い)

ただSheetDBは無料で作れるAPIは2つまでなのでここが一番ネックです。有料契約すると一番安いタイプでも月$29.9と結構します。じゃあ、無料でAPIがいくつも作れるものは何かと探したらSteinとSheetsonが該当しました。

これはいいと喜んで使っていたら、イマイチ使いづらいんですよ。Steinはいいんだけど、スプレッドシートのデータをdelete(削除)すると、何故かセルが空欄になるだけで行が削除されません。(使い方を知らないだけか?)これが無ければ使いたいと思っています。

Sheetsonは結構独特な使い方をします。データを行に入力すると自動でRowIndexという行番号が割り振られて、UpdateやDeleteの時にこの行番号をAPIのURLの中に追加するというやり方をします。(行番号は一回割り振られたら固定値になる。途中で行が削除されたからと言って変わるわけではない)それ以外のAPIソフトは変更の場合は列を指定して、その中で変更する行を指定するというやり方を取っています。

今迄使ってきた感じだと、まずSheetDBを使い、無料のAPIを2個を使ってしまったら無料のSheetsonにしようかなと思っています。
SheetDBはデフォルトだとファイルにシートがいくつかある場合、最初のシートを読み込むようになっていますが、指定すれば2枚目以降のシートも読み込み可能です。

(本題)
SheetDBを使ってAdaloからスプレッドシートのデータを読み込む手順。

手順:
1.スプレッドシートの準備
2.SheetDBでAPI-Keyの取得
(準備)
1.スプレッドシートの準備
  ・適当なデータを入れたスプレッドシートを準備します。(下記参照)
  ・1行目にはプロパティ名が入ります。(必ず設定して下さい)
データを変更する際にURLにプロパティ名を追加するので出来れば英字の方がいいです。少なくてもデータ行は1行あらかじめ入れておいて下さい。(アクセスしたときにデータが無いとエラーになります。)

画像2

2.SheetDBの準備
  ・スプレッドシートのAPI-Keyを取得
  ・APIのURLを取得「https:sheetdb.io/api/v1/{Api Key}」の形になります

画像1

3.Adaloで外部データベースを作成
  ・「+ADD COLLECTION」をクリックします

画像3

最初の画面にデータベースの名前とAPIのURLを入力します(APIのURLはSheetDBで表示されています。)

画像4

次の画面は特にすることが無いです(「NEXT」ボタンを押す)

画像5

次の画面でデータの読み込みテストをします(「RUN TEST」ボタン押す)

画像6

データ読み込みに成功すると以下の画面(JSONデータ)が表示されます。
画面右下にある「CREATE COLLECTION」ボタンをクリックしてデータベースをAdaloに保存します。

画像7

Adaloにさっきまで無かった外部データベース(SheetDB_0305)が追加されました。

画像8

クリックするとプロパティだけが表示されます。(中身のデータはこの時点では見られません)

画像9

データの中身を見るためにHomeスクリーンにカスタムリストを配置して中身を表示してみます。Listとデータベースを紐づけます。

画像10

プレビューしてみます。データの中身が確認出来ました。

画像11

これでスプレッドシートからのデータの読み込みは終了です。ここまでは多分何の問題もなくすんなりいくと思います。これから読み込んだデータにAdaloからCustomActionを使って「追加」、「変更」、「削除」などをしていきたいと思います。

(事前準備)
APIに接続する場合、データはHTTP通信という方式で送られますが、データには以下のような種類があります。言葉の意味を簡単に説明しておきます。

1.GET・・・・データベースから合致したデータを取得(GET)する
2.POST・・・データベースにデータを投げて(POST)追加します。
3.PATCH/PUT・・・データベースの中身を更新(Update)する時に使用
4.Delete・・・・・データベースの中身を削除する場合(行の削除)

中でも分かりにくいのがUpdateするときのPATCH/PUTではないでしょうか?データ更新するときはPATCHかPUTのどちらかを使います。似てますが使い方は決まっていますので間違えないで下さい。

PATCH(パッチ)
・・・PATCHはパッチワークのパッチです。「ほころびを直す」とか「部分的に修正する」という意味です。一部分だけ修正したい場合はPATCHを使って下さい。修正されなかった他の部分はそのままの状態(元のデータのまま)になっています。

PUT(プット)
・・・PUTでデータの一部分を修正する場合でも修正を指定しなかった他のデータは全部空欄になります。(行のデータがすべて書き換わります。)意図せずデータが空欄になってしまうことがあるのでデータ更新の時は本当にPUTでいいのかどうか確認が必要です。

長くなってきたので実際の変更手順は別のサイトで説明します。

(過去の投稿はこちら)
https://note.com/mucho3/n/n632515d056d1

いいなと思ったら応援しよう!