![見出し画像](https://assets.st-note.com/production/uploads/images/73732348/rectangle_large_type_2_31130c9e33d78424792c19ec8a8160e1.jpg?width=1200)
【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.SheetDBの準備
・スプレッドシートのAPI-Keyを取得
・APIのURLを取得「https:sheetdb.io/api/v1/{Api Key}」の形になります
3.Adaloで外部データベースを作成
・「+ADD COLLECTION」をクリックします
最初の画面にデータベースの名前とAPIのURLを入力します(APIのURLはSheetDBで表示されています。)
次の画面は特にすることが無いです(「NEXT」ボタンを押す)
次の画面でデータの読み込みテストをします(「RUN TEST」ボタン押す)
データ読み込みに成功すると以下の画面(JSONデータ)が表示されます。
画面右下にある「CREATE COLLECTION」ボタンをクリックしてデータベースをAdaloに保存します。
Adaloにさっきまで無かった外部データベース(SheetDB_0305)が追加されました。
クリックするとプロパティだけが表示されます。(中身のデータはこの時点では見られません)
データの中身を見るためにHomeスクリーンにカスタムリストを配置して中身を表示してみます。Listとデータベースを紐づけます。
プレビューしてみます。データの中身が確認出来ました。
これでスプレッドシートからのデータの読み込みは終了です。ここまでは多分何の問題もなくすんなりいくと思います。これから読み込んだデータに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
この記事が気に入ったらサポートをしてみませんか?