APIを利用して、特定のユーザのみが閲覧できるデータItemを作成するには?

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には、これらのユーザのみが閲覧可能となり、それ以外のユーザからは閲覧できません。
「いいね!」 1