未ログイン状態でのAPIの実行およびテーブルに保存

Hexabaseに未ログイン状態でAPIを実行してデータベースに情報を登録する方法はありますでしょうか?
利用想定としてはサービスに対するお申込みをWebの画面からユーザーに行っていただき、
それをHexabase内のテーブルに保存しておき、管理者はその情報を元に内容を確認する。

「いいね!」 1

@k-otani 特定ワークスペース、特定URLに限定して、APIを認証なしで実行することができます。
その場合は、弊社へ該当URLご連絡 いただき、こちらで確認の上の設定することでご利用いただけるようになります。

「いいね!」 1

@iwasaki.hexabase

特定ワークスペース、特定URLに限定して、APIを認証なしで実行することができます。

ログイン認証が必要な画面と同様のドメインのままで、ドメイン配下のパスだけを未ログイン用に用意(設定)してアクセスすることは可能でしょうか?

ワークスペース内の同一アプリに対して、ログイン認証あり / なしの両方のアクセス制御を設定することは可能でしょうか?(機能(画面URLも別)によってログインあり, なしのパターンで同一アプリDBにアクセスする場合がある、同一アプリ内のDB単位でアクセス制御(認証有無)を分ける)

DBとかアプリに対して、未ログイン用のユーザー(トークン?)用意すればいける?

特定ワークスペース、特定URLに限定して、APIを認証なしで実行することができます。

回答(@iwasaki.hexabase

  • URL同じでGETパラメータ変えては厳しいかも(URLルールにそぐわない場合は難しそう,APIのPOSTのURLの通りなら大丈夫そう)
  • 調べないとわからない(実際のURLとか仕様教えてくれれば答えれると思う)

TODO( @k-otani @k-koniship

  • 実際のURLとか仕様を伝えて確認いただく

下記のイメージのように、GETパラメータからアプリケーションIDやグループIDを取得して、APIのパラメータに使用し、実行することは可能でしょうか?

「いいね!」 1

アクションのAPIのみを公開いただけるようにご依頼する。
添付しているイメージは中止

改めて記載させていただきます。
データ登録実行アクションに関してのみ公開設定をして、未ログインのエントリーを受け付けられるようにします。
登録時に必要な関連するアイテム情報の取得や、採番については、ActionScriptやWebhook+FunctionServiceなどを利用する方がセキュアに実装でき、理想的かと存じます。

@iwasaki.hexabase CC: @k-otani @hi-takahashi
未ログイン状態でのエントリーは、データ登録実行アクションを実行し、それに連動するActionScriptを記述しておき、その中で登録時に必要な関連するアイテム情報の取得や、採番を行い、データの整合性をチェックし、データ登録を完了するというイメージでしょうか。
また、上記の場合、ActionScriptはどこに記載するのでしょうか。

@iwasaki.hexabase
CC: @k-otani @m-takaharap

ActionScript 内で API 呼び出しする際に、トークンが必要になる(ないとエラーになる)ようなのですが、未ログイン状態(トークンを渡さずに)で API 実行する際の推奨方法等はありますでしょうか?

以前お話した永続化トークン?を ActionScript 内に埋め込んで API 呼び出し時に利用する、で問題ないでしょうか?
(もしくは ActionScript 内で トークンなしでAPI呼び出し可能な方法はありますでしょうか?)

また永続化トークンの発行手順や利用方法(使う場面)について教えていただきたいです。
(こちらで必要な準備等ありますでしょうか?永続化トークン用のアカウントを用意して共有?それともアカウントは不要で対象のワークスペースやアプリなどアクセス対象の識別に必要な情報(ワークスペースID、アプリID, 対象API のURL 等)を共有?)

@iwasaki.hexabase
CC: @k-otani @m-takaharap

上記質問は、未ログイン状態での アクション実行(ActionScript 内で 以下処理が可能であるか、問題がないか)の確認です。

★目的
・hexabase アプリのユーザーアカウント作成(新規ユーザー登録)前の事前(予約、申請)データ登録。
・グループ内ユーザー(メールアドレス)で重複がなければ登録する。

★処理内容
・ユーザー重複チェックに必要なデータ取得(GetUsersInGroup)
・登録時に必要な関連データ取得(ItemList など)
・自動採番(GetAutoNumber)
・データ登録更新(CreateItem, UpdateItem)

@hi-takahashi
諸々返信いたします!

まず、未ログイン状態でHexabaseのAPIをご利用いただくためには、事前に個別に弊社へ該当のREST URL をご連絡いただくことになります。その際に、どのユーザ(トークン)を利用して実行するかについても情報をいただくことになります。(弊社側で承諾し、設定をしないと公開APIは有効になりません。)

今回のケースでは、例えばGuestユーザとして権限範囲の小さいユーザを作成いただき、そのユーザの永続化されたトークンを別途ご連絡いただく形ではいかがでしょうか。

永続化トークン(APIトークン)の発行については、該当ユーザでログイン後、該当ユーザーがワークスペース管理者+開発者向け機能ONの状態で、ユーザプロファイルの画面から発行できます。

GuestユーザはAPIコール専用のUserとして、通常の画面ログインでは利用されないことを推奨します。万が一、当該ユーザーでログインし、利用しているワークスペースを変更してしまった場合、APIから値が返却されなくなるというリスクがあるためです。

@iwasaki.hexabase
返信ありがとうございます!

返信内容を踏まえてこちらで検討いたします!
(検討中に質問等出てきた場合はまた改めてご質問させていただくかもしれません。REST URL とは具体的には何か?等、ExcuteActionのitem以下の固定部分のURL?ExcuteActionの拡張プログラム内で呼び出すAPI のURL?、、)

「いいね!」 1

承知しました!よろしくお願いいたします。

御社ケースの場合、おそらくExecuteActionなどの更新APIのみの公開になるのでは?と思います。

「いいね!」 1

ActionScript内からは、callAPI()関数をご利用することで、HexabaseのすべてのAPIをご利用できますので、上記すべて実装可能かと存じます。
callAPI()関数を利用いただくと、自動的にログインユーザのトークンがセットされ、APIコールされます。

「いいね!」 1

追伸
ログ出力については、サンプルコードでconsole.logが利用されていますが、logger.log()などの関数をご利用ください。
以下手順にて、デバッグが可能となります。

「いいね!」 1

@iwasaki.hexabase

諸々ありがとうございます!
実際に ActionScript 上で一旦ログインした状態の試行で動作確認(一旦登録 API のみ)できました!
(API 呼び出し:callAPI(), デバック:logger.log() )

「いいね!」 1

@iwasaki.hexabase
添付画像の内容が実現可能であるか、明日のお打ち合わせ時に相談させてください。

「いいね!」 1

承知しました!よろしくおねがいします

「いいね!」 1

PreActionScriptが2/15週に完了見込み
2/22週にリリース予定

「いいね!」 1