Webhook の概要
Webhook の概要
サンプルアプリケーション
Frame.io Webhook 用に独自のコンシューマーを構築したい場合は、GitHub 上のサンプルアプリを入手して拡張してください。
利用開始
Webhook は、Frame.io 内で発生するイベントを活用して、外部システムに処理、API コールバック、そして最終的にはワークフローの自動化用に送信できる通知に変換する方法を提供します。
セットアップ
Webhook は開発者サイトの webhook エリアで設定できます。Webhook には以下が必要です。
- 名前 - 開発者サイトにのみ表示されます。
- URL - イベントの配信先。
- チーム - この Webhook を追加するチーム。
- イベント - Webhook をトリガーするイベント。
サポートされているイベント
1 つの Webhook で、次の、任意の数のイベントにサブスクライブできます。
プロジェクト
アセット
アセットバージョン管理
asset.versioned イベントが発生すると、バージョンスタック自体ではなく、バージョン管理されたアセットの ID を含むペイロードが返されます。したがって、その id をバージョンスタックの ID とみなして別の関数に渡せると考えている場合は、まずその特定の ‘parent’ リソースを検索して突き止める必要があります。
アセットラベルの更新
パブリック API(BES-408)を介して /v2/assets/:id エンドポイントへの PUT 呼び出しによってステータスラベルが変更されても、asset.label.updated イベントは発生しません。ただし、ステータスラベルの更新にネイティブの Frame.io アプリと統合(web、iOS、Premiere、After Effects、FCPX など)が使用された場合は発生します。
コメント
レビューリンク
共同作業者
チームメンバー
ペイロード
Frame.io は、JSON ペイロードを、指定された Webhook エンドポイントに配信します。asset.created イベントのペイロードの例を次に示します。 **
すべてのペイロードには、type フィールド(発生するイベントのタイプを示します)と resource オブジェクトが含まれています。resource オブジェクトは、このイベントに関連するリソースの type と id を指定します。
上記の asset.created イベントの例では、これは、新しく作成されたアセットの id になります。さらに、user および team オブジェクトも含まれます。これらは、イベントをトリガーしたユーザーと、リソースのチームコンテキストを参照します。
ユーザーとチームの直接的なコンテキストを除き、サブスクライブされたリソースに関する追加情報は含まれません。アプリケーションで追加情報やコンテキストが必要な場合、HTTP API を使用してフォローアップリクエストを行うことをお勧めします。
再試行
サービスへの Webhook の配信中にエラー(200 以外のステータスコード応答)またはタイムアウトが発生した場合、ペイロードが 3 回再試行され、合計 4 回の配信試行が行われます。
セキュリティ
デフォルトでは、すべての Webhook に署名キーが提供されます。これは設定できません。このキーを使用して、リクエストが Frame.io から発生していることを確認できます。
Webhook 署名の確認
中間者攻撃や反射攻撃から統合を保護するには、Webhook 署名を確認することが不可欠です。確認により、Webhook ペイロードが実際に Frame.io によって送信され、トランスポートでペイロードコンテンツが変更されていないことが確認されます。
POST リクエストには、次のヘッダーが含まれます。
タイムスタンプは、Frame.io のシステムからの配信の時刻です。これは、リプレイ攻撃を防ぐために使用できます。この時刻が現地時間から 5 分以内であることを確認することをお勧めします。
署名は、Webhook が最初に作成されたときに提供された署名キーを使用する HMAC SHA256 ハッシュです。
署名を確認するには、次の手順に従います。
- HTTP ヘッダーから署名を抽出します。
- 次のようにバージョン、配信時刻、およびリクエスト本文を組み合わせることで、署名するメッセージを作成します:
v0:timestamp:body - 署名シークレットを使用して、HMAC SHA256 署名を計算します。 注意:指定された署名には、接頭辞
v0=が付きます。現在、Frame.io で署名リクエスト用に用意されているのはこれだけです。この接頭辞が計算された署名の先頭に追加されていることを確認してください。 - 比較します。