カスタムアクション
カスタムアクション
Frame.ioアクションは、ダウンロード、名前変更、項目の複製などの一般的なメディア操作への素早いアクセスを提供し、Frame.ioのユーザーインターフェイス内で直接、サードパーティツールやサービスとの統合も可能にします。
アクションについて
カスタムアクションの導入により、デベロッパーはFrame.io V4で独自のアクションを設定し管理できるようになりました。 Webhooksと同じ基盤イベントシステムを活用し、カスタムアクションはデベロッパーがアセットを、Frame.ioアカウント内のユーザーにとって最も重要なツールに接続するための代替メカニズムです。
アクションは、そのアクションが有効になっているFrame.io Workspaceのメンバーであるユーザーならだれでも実行できます。アクションを実行すると、Frame.ioは指定したURLにペイロードを送信します。受信アプリケーションは、受信確認のためHTTPステータスコードで応答するか、Frame.io UIに追加フォームフィールドをレンダリングするカスタムコールバックで応答します。受信アプリケーションは、独自にホストしたプログラム、サービス、またはWorkfront FusionやZapierなどのローコード・ノーコードIPaaSツールでも構いません。
カスタムアクションを使用して、プログラム可能なUIコンポーネントとしてFrame.ioに直接統合を構築します。これにより、アプリ内でユーザーがトリガーできるワークフローが可能になり、webhookと同じ基盤イベントルーティングを活用します。Frame.ioに別のフォームまたは基本的な応答として戻ってくる、ユーザートリガー型の単一または複数ステップフォームを作成できます。そして、ユーザーがアセット上のカスタムアクションをクリックすると、Frame.ioは指定したURLにペイロードを送信します。受信アプリケーションは、受信確認のためHTTPステータスコードで応答するか、Frame.ioに追加UIをレンダリングできるカスタムコールバックで応答します。
V4でのアクション改良
レガシーバージョンのユーザーからの学びを活用し、Frame.io V4のアクション機能セットに多数の拡張を含めました:
以前はテキストフィールドと単一選択フィールドに制限されていましたが、現在は複数選択、テキストエリア(より大きなテキストボックス用)、およびブーリアンフィールド(ラジオボタン用)もサポートしています。
テキストフィールドでは、ユーザーがURLを簡単にコピー・ペーストできません。代わりに新しいリンクフィールドを使用して、簡単なワンクリックでコピー体験を実現してください。
返されるデータの量に応じて、アクションのモーダルが動的にサイズ変更され、フォーム内の情報に最適にフィットし、必要に応じてスクロール可能なモーダルも含まれます。
アクションを設定して、一度のリクエストで最大100個のアセットを対象にできます。
NEW
1つのアセットタイプに制限されません。アクションは、ファイル、フォルダー、バージョンスタックの組み合わせ全体でトリガーできます。
アクションの使用方法について、デベロッパーとエンドユーザーの両方からお聞きしたいので、webの設定ページにフィードバックフォームを表示しています。
移行されたアクション
Frame.ioのレガシーバージョンで以前に作成されたカスタムアクションを含むFrame.io V4アカウントに移行する際に、覚えておくべきいくつかの点があります。
アクションステータス
Frame.io V4へのアカウント移行時、以前のバージョンで作成されたすべてのカスタムアクションのステータスは「null」になり、自動的に無効になります。これにより、ユーザーは最初にアクションを更新してV4 APIを使用してから有効化する機会が得られます。更新されていないアクションは失敗するためです。この状態のアクションを識別するには、アクション設定ページにアクセスして「ステータス」列を参照するか、APIを使用している場合はis_activeフィールドを確認してください。
実行可能なリソース:ファイル、フォルダー、バージョンスタック
Frame.io V4 APIでアセットタイプが別々のリソースとして分離されているため、アクションのペイロードで受信したリソースIDを解釈する際に考慮すべき動作があります。個別ファイルの動作は分かりやすく、IDはアクションが実行された特定のファイルを反映します。同様にフォルダーの場合、アクションが実行されたフォルダーのIDを受信しますが、ユースケースに応じて、アクションの動作を定義する際に複数のオプションがあります。フォルダーリソース自体とやり取りしたい場合は、フォルダーIDを使用してFrame.io APIへの後続の呼び出しを行ってください。または、そのフォルダーの子を取得して、内部のアセットでさらなる処理を実行することもできます。バージョンスタックでアクションが実行されると、ペイロードにはスタックの最上位ファイルである「ヘッドアセット」のIDが含まれ、これがFrame.io UIに表示される内容です。
Frame.ioレガシーAPIとV4の違いについて詳しくは、移行ガイドをご覧ください。
APIでカスタムアクションを設定します。
カスタムアクションには以下が必要です:
カスタムアクションを設定
ユーザーがカスタムアクションをトリガーすると、Frame.ioは指定されたURLにペイロードを送信します。受信アプリケーションは、受信確認のためにHTTPステータスコードで応答するか、Frame.ioで追加のUIをレンダリングするカスタムコールバックで応答することができます。
Workspaceのカスタムアクションを作成するには、アカウント管理者権限が必要です。アクセス権がない場合は、管理者に権限の変更を依頼してください。
マルチアセット設定
マルチアセットサポートは設定に基づいており、アクションの設定モーダルon webから明示的に有効にする必要があります。これは、新しいアクションの作成時、または既存のアクションの更新時に実行できます。
マルチアセットサポートが有効になると、ペイロード形式は即座に切り替わります。レガシーとマルチアセットサポートのペイロードは相互排他的です。
Frame.ioからのペイロード
ユーザーがカスタムアクションをクリックすると、URLフィールドで設定したURLにペイロードが送信されます。このペイロードを使用して以下を識別します:
-
クリックされたカスタムアクション
-
クリックされたリソース
-
アクションを実行したユーザー
-
トリガーされたイベントタイプ
-
カスタムアクションに関連付けられたアカウント
-
カスタムアクションに関連付けられたWorkspace
-
リソースを含むプロジェクト
ペイロード - 単一または複数アセットのサポート
カスタムアクションは、もともと1つのアセットを含むresourceオブジェクトを使用して、リクエストごとに1つのアセットのみを受け入れていました。複数アセットのサポートが有効になると、ペイロードは1つまたは複数のアセットのresourcesリストを使用します(1回のリクエストで最大100個のアセット)。
レガシーペイロード - 単一アセットサポートのみ
レガシーペイロードからの移行
レガシーペイロードの廃止予定
レガシーペイロードは廃止が予定されており、ユーザーは新しいペイロードを処理するようにサービスを移行することを強く推奨しています。
設定フラグを有効にしてペイロード処理を更新することで、アクションは複数アセットペイロードをサポートするようにシームレスに移行できます。
-
単一の
resourceオブジェクトの使用をresourcesリストに置き換える 2。resourcesリストを反復するようにコードを更新する -
アクション設定で複数アセットフラグを有効にする
インタラクション、再試行、タイムアウト
interaction_idは、時間の経過とともに進化するインタラクションをトラッキングするための一意の識別子です。ユーザーに応答する必要がない場合は、200ステータスコードを返せば完了です。オプションですが、成功メッセージやエラーアラートなど、アクションの結果に関する情報を含めることをお勧めします。カスタムアクションはメッセージコールバックをサポートしています。
Frame.ioは10秒未満での応答を期待し、成功した応答を待つ間に最大5回まで再試行を試みます。理想的には応答は即座で、非同期アクションはカスタムアクションを介したトリガー後に発生します。
メッセージコールバックを作成
WebhookイベントへのHTTP応答で、Frame.io UIで開始ユーザーに返されるメッセージを説明するJSONオブジェクトを返すことができます。
メッセージを使用すると、Frame.io UIでユーザーに直接フィードバックを提供できます。ユーザーから追加情報を収集する必要がある場合は、代わりにフォームコールバックを使用してください。
フォームコールバックを作成
プロセスを開始する前に、さらに情報が必要だとしましょう。例えば、追加の詳細が必要なシステムにコンテンツをアップロードする場合があります。応答でフォームを記述でき、ユーザーがそれを記入して送信すると、あなたに返されます。以下に例を示します:
ユーザーがフォームを送信すると、最初のPOSTと同じURLでイベントを受信します:
フォームに追加されたすべてのカスタムフィールドは、Frame.ioから送信されるJSONペイロードのdataセクションに表示されます。interaction_idを使用して、初期リクエストとこの新しいフォームデータをマッピングします。メッセージで応答するか、別のフォームをチェーンできます。アクション、フォーム、メッセージをチェーンすることで、外部システムからのビジネスロジックを使用して、Frame.ioで多段階のワークフローを効果的にプログラムできます。
フォームの詳細
メッセージと同様に、フォームもフォームの上部にレンダリングされるtitleとdescription属性をサポートしています。それ以外に、各フォームフィールドは以下の基本属性を受け入れます:
- type — Frame.io UIに期待するデータのタイプと、どのコンポーネントをレンダリングするかを伝えます。* label — フィールドの上にヘッダーとしてUIに表示されます。
- name — 後続のペイロードでフィールドが識別されるキー。* value — フィールドに事前入力する値。
サポートされているフィールドタイプ
テキストフィールド
追加パラメーターのないシンプルなテキストフィールド。
テキストエリア
追加パラメーターのないシンプルなテキストエリア。
選択リスト
ユーザーが選択できるピックリストを定義します。optionsリストを含める必要があり、各メンバーには人間が読めるnameと機械解析可能なvalueを含める必要があります。
チェックボックス
追加パラメーターのないシンプルなチェックボックス。
リンク
追加パラメーターのないシンプルなリンク。
Frame.io権限モデル
カスタムアクションには特別な権限モデルがあります。これらはアカウント上の特定のユーザーではなく、Workspaceに属します。つまり:
-
すべての管理者がWorkspace上でカスタムアクションを作成できます。
-
すべての管理者がチーム上に存在するカスタムアクションを変更または削除できます。
-
変更されると、すべてのユーザーは変更の結果を即座に確認できます。
セキュリティと検証
デフォルトで、すべてのカスタムアクションは作成時に生成される署名キーを持ちます。これは設定できません。このキーは、リクエストがFrame.ioから発信されたことを検証するために使用できます。POSTリクエストには以下が含まれます:
タイムスタンプは、Frame.ioのネットワークから出る途中でリクエストが署名された時刻です。これはリプレイ攻撃を防ぐために使用できます。この時刻がローカル時刻の5分以内であることを検証することをお勧めします。
署名は、カスタムアクションが最初に作成されたときに提供される署名キーを使用したHMAC SHA-256ハッシュです。
署名の検証
提供された署名にはv0=の接頭辞が付いています。現在Frame.ioではリクエストの署名にはこのバージョンのみを使用しています。計算した署名にこの接頭辞を追加する必要があります。
フィードバック
Frame.io V4でアクションを使用したい方法について、デベロッパーやエンドユーザーからご意見をお聞かせください。優先順位を決定するために、質問、アイデア、ユースケースをお聞かせください。