HexabaseAPIを利用して、特定のユーザーのみが閲覧できるデータItemを作成する方法を紹介します。
前提
- バッチ処理やバックエンド拡張プログラムからAPIの実行を想定します。
- API実行ユーザーは、あらかじめログイン済であるか、または、API実行専用の固定永続化トークンを利用してAPI実行することを前提とします。
事前設定
1. アクションの追加
- 該当Itemの対象データベース(datastore)へ、データ新規作成アクションを作成します。
- この時、データ公開設定にあるチェックを「すべて」外します。
- この設定により、このアクションにより作成されたデータは、API実行者(プログラム)以外の誰からも閲覧不可となります。
2. ユーザー型フィールドを追加
-
権限を与える対象ユーザを指定するための、フィールドを追加します。
-
追加したフィールドを選択し、「指定したユーザへ公開する」をチェックします。
-
この設定を入れることで、Item作成または更新時に、このフィールドに指定されたユーザへこのItemのアクセス権限を加えることが可能となります。
APIの実行と確認
1. API実行
- APIから、作成した新規作成アクションを実行します。
- 利用するAPIは、こちらの ExecuteAction APIになります。
- このとき、ユーザーフィールドに、公開したいユーザーIDを指定します。
POST https://api.xxx.com//api/v0/applications/TargetAppID/datastores/NewDatastore/items/action/5f38a10faa395581685afda2/NewItem
Payloadの例
{
"item": {
"ItemTitle": "New Item",
"AccessUsers" : [ "58bbaa27fbfcba6098746015"], // 公開するユーザのUserIDを指定
},
"comment": "my first access key",
"return_item_result": true
}
2. 登録されたデータの確認
- API実行ユーザを利用してログインします。
- Item詳細画面の下部をクリックし、「このデータの情報」を閲覧します。
- API実行ユーザと、作成したユーザーフィールドに指定したユーザーのみが閲覧可能であるようにアクセスキーが付与されています。このデータItemには、これらのユーザのみが閲覧可能となり、それ以外のユーザからは閲覧できません。