見出し画像

【Adalo】Airtableのデータを操作してみた(その3_データ更新Update)

(構成)
第1回:AdaloからAirtableのデータを取得(Read)
第2回:AdaloからAirtableにデータを追加(Create)
第3回:AdaloからAirtableのデータを更新(Update)
※本編
第4回:AdaloからAirtableのデータを削除(Delete)
第5回:Airtableから読み込んだデータにfilter、sortをかける

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

前回はAdaloからAirtableにデータを追加する方法について説明しました。第3回目となる今回は、既にあるデータを変更(Update)する方法をご紹介します。

Airtableはデータを記入すると行ごとにidと呼ばれる固有の文字列が自動で作られるという特徴があります。ユーザーは普通はこのidを意識することはほとんどないと思いますが、データを更新したり削除する時はこのidを使って対象となる行の場所を指定します。

1.AirtableをUpdateするための設定

AirtableのAPI Documentationをクリックすると下記画面が表示されます。画面左部分にある「Update records」という項目からUpdateに関する情報を入手していきます。

画面中央にある「Click here to show an example」をクリックすると画面右にUpdateに関する情報が表示され、これに基づいて設定を行います。

画像6

画面右側には以下のような情報が示されています。

画像10

(注)この画面はcurlコマンドでコマンドライン(Macならターミナル)でデータ送信する場合の設定例が示されています。Adaloの設定も基本的にこのやり方に従います。

①通信Method
 curl -v -X PATCH →AirtableでUpdateするときは「PATCH」を選択

②API URL
「https://api.airtable.com/v0/(Baseのid)/(Tableのid)/(行id)
APIのURLの最後にどの行を変更するか分かるように「行id」を追加します。
id自体はrec4pIfupKZIi9fKtのような長い文字列ですが、Adaloではこの部分を変数で作りますのでこのような文字列を入力することはありません。

③認証 
name:Authorization
value:Bearer (Your API KEY)
※API Keyが表示されてない場合は画面右上にある「Show API Key」をクリックするとAPI Keyが表示されます。

④送信データ(JSON形式)
--dataの部分がJSONで送るデータの内容を示しています。分かりやすいようにデータの組み合わせ(オブジェクト)ごとに縦に表示してありますが、Adaloでは横1列に書くようになっています。横1列に書く場合は以下のようにして下さい。

(AdaloでのJSON記入例)
{"fields":{"名前":"(名前の変数)","身長":(身長の変数),"体重":(体重の変数)}}


(注意)
データ型が「数字」のものは""で囲まないで下さい。(エラーになります)
この例では身長と体重はデータ型が数字(number)なので""で囲みません。

2.Adaloでの設定

Airtable側で一通り設定の内容を確認できたので今度はそのデータを使ってAdalo側の設定を行います。

Airtableから読み込んだデータを更新(Update)するには編集用の別画面を作成してそこで作業を行います。「Edit」という名前の画面を作り、Text Inputを4個、ボタンを1個配置しました。(ボタンは「UPDATE」という名前にしました)

カスタムリストのデータをクリックするとEdit画面に遷移するようにLinkの設定をしておきます。これによってカスタムリストのクリックされた行のデータがEditに転送され、Text Inputで表示することが出来ます。

画像1

各Text Inputとカスタムリストから転送されてくるデータを紐づけておきます。関連付けが出来ると下記画像のようにインプットがどのデータと紐づいているかうすい灰色文字で表示されます。

画像2

3.ボタンにCustom Actionを設定する

UPDATEボタンを押すとairTableの外部データベースを変更できるようにCustom Actionの設定を行っていきます。

画像3

4.Custom Actioの設定画面(全3ページ)

①Name&Type
・Name:分かりやすい名前を付けます
・Type: Updateを選択

画像4

②API Request
AirtableのAPI Documentationで調べた情報を入力していきます。一番のポイントはどの行をUpdateするのか指定するために行idを変数として作り、それをAPI のURLに追加する部分です。(「削除(DELETE)」でも全く同じ設定をします。)

(注意)
行idは実在するid文字列を使って下さい。この後に出てくる「テスト送信」でその行idがある行に実際にアクセスしてUpdateのテストが行われるので、架空のidを設定するとエラーになってしまいます。

~実在する行id例~
Aさんのデータではidは以下のようになっているのでこれを使います。
id例:rec4pIfupKZIi9fKt
(注意)この文字列はInputsで設定するだけ使い、API URLに追加する時は変数を使います。

(画面の入力例)
・Inputs:・・・各種変数を作る「行id」、「名前」、「身長」、「体重」
・API Base URL:「https://api.airtable.com/v0/{・・・・}」に行idを追加
・Method: PATCH(PUTではなくPATCHを使用します)
・Header: 認証
 name: Authorization  
 value: Bearer(API Key)

・Body: 送信するデータ(JSON形式)
{"fields":{"名前":"(名前の変数)","身長":(身長の変数),"体重":(体重の変数)}


画像5

③Outputs
テスト送信が成功すると下記の「Test Sccessful!」という画面が表示されます。右下の「SAVE CUSTOM ACTION」ボタンを押して設定を保存します。

画像8

5.ボタンにCustom Actionを保存

「Update」ボタンを選択すると画面左に変数を使った設定画面が表示されます。「名前」、「身長」、「体重」等の変数はInputから値を持ってきます。

画像9

6.動作確認をします

カスタムリストの一番上に鈴木さんのデータが表示されています。これをUpdateで以下のように変更してみます。
名前:鈴木さん → 田中さん
身長:173cm  → 180cm

鈴木さんのデータ行をクリックすると編集画面「Edit」に遷移します

画像10

「Edit」画面に遷移したらデータを以下のように書き換えて「Update」のボタンを押してみます。

画像11

うまく行きました。鈴木さんのデータが田中さんのデータに変更されました。

画像12

UpdateはJSONの記入の他にAPIのURLに行idを追加するなど色々気を付けなければいけない点が出てきます。

Updateが理解できれば次回説明するDelete(データ削除)はJSONの記述がない分だけ簡単です。

(構成)
第1回:AdaloからAirtableのデータを取得(Read)
第2回:AdaloからAirtableにデータを追加(Create)

第3回:AdaloからAirtableのデータを更新(Update)
※本編
第4回:AdaloからAirtableのデータを削除(Delete)

第5回:Airtableから読み込んだデータにfilter、sortをかける

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

この記事が気に入ったらサポートをしてみませんか?