# 外部通知

本章では、ULIZAプロダクトアカウントの外部通知について説明します。

# 概要

外部通知はWebhookの仕組みを利用して、外部のサーバーに対して通知を送ることができる機能です。外部通知を使用することでULIZAで管理されているリソースの変更を即時に外部のサーバーに伝え、任意のアクションを行うことができます。

# 外部通知を設定する

サイドバーから「外部通知の設定」(Webhookの権限がある場合のみ表示されます)をクリックすると、外部通知の設定画面に遷移します。外部通知の設定画面の構成は以下の通りです。

# ① Webhook通知を有効にする

このチェックボックスにチェックを入れると、Webhook通知が有効になります。

# ② Webhook通知の送信元のIPアドレス

Webhook通知の送信元のIPアドレスが表示されます。セキュリティなどの都合でアクセス制限を行っている場合は、表示されたすべてのIPアドレスについてHTTPによる通信を受信できるように許可してください。

# ③ Webhook通知先URL

Webhookを通知する先のURLを入力します。半角英数記号のみ使用可能です。

# ④ 追加のヘッダー

「追加のヘッダーを使用する」のチェックボックスにチェックを入れると、Webhook通知のHTTPリクエストの際に任意のHTTPヘッダーを追加することができます。HTTPヘッダーを追加することで、サーバーとの認証や他のアクセスとの区別ができるようになります。ヘッダー名には半角英数字、ハイフンおよびアンダースコアのみ使用可能です。ヘッダー値には半角英数記号のみ使用可能です。

# ⑤ Webhook通知を行うタイミング

各項目のチェックボックスにチェックを入れると、チェックを入れた項目についてWebhook通知が行われます。

# ⑥ 「保存」ボタン

このボタンをクリックすると、Webhook通知の設定が保存されます。

# Webhook通知の仕様

Webhook通知はHTTPのPOSTメソッドによってリクエストされます。リクエストボディはJSON形式で送信され、内容は以下の通りのオブジェクトです。

プロパティ 説明
login_id string ULIZA プロダクトアカウントのログインID
model string 操作が行われたリソース
action string 操作の種類
data object 操作の情報
id string メッセージID
timestamp string Webhook を送信した日時(JST)。YYYY-MM-DD hh:mm:ssの形式

プロパティmodel, action, dataは通知の種類によって値が異なります。

# 通知の種類

通知の種類ごとにどのような条件の時に通知されるか、またリクエストボディのプロパティmodel, action, dataがどのような値になるかを説明します。

# コンテンツ作成

コンテンツが作成されたときに通知されます。

プロパティ 説明
model string "content"
action string "create"
data.content Content 作成されたコンテンツの情報

# コンテンツエンコード完了

コンテンツのエンコードが完了したときに通知されます。

プロパティ 説明
model string "content"
action string "complete_encoding"
data.content Content エンコードが完了したコンテンツの情報

{
  "login_id": "admin@example",
  "model": "content",
  "action": "complete_encoding",
  "data": {
    "content": {
      "name": "content-2024-11-01-11-26-00-722-063d9874",
      "title": "コンテンツタイトル",
      "description": "コンテンツの説明",
      "type": "VOD",
      "status": "PUBLIC",
      "duration": 120,
      "category_id": "dba15c50-bc60-42f3-ac16-41e47f39d041",
      "labels": [
        "224b30b9-840b-4041-832b-2b3d1fe431cd"
      ],
      "tags": [
        {
          "key": "タグキー",
          "value": "タグ値"
        }
      ],
      "created_at": "2024-11-01 11:26:00",
      "updated_at": "2024-11-01 11:28:31"
    }
  },
  "id": "0d575e78-4b42-7a1d-a93a-01e585fd5ecf",
  "timestamp": "2024-11-01 11:28:31"
}

# コンテンツエラー発生

コンテンツのステータスがエラーになったときに通知されます。

プロパティ 説明
model string "content"
action string "error"
data.content Content エラーになったコンテンツの情報

# コンテンツ更新

コンテンツが更新されたときに通知されます。

プロパティ 説明
model string "content"
action string "update"
data.content Content 更新された後のコンテンツの情報
data.old_content Content 更新される前のコンテンツの情報

# コンテンツ削除

コンテンツが削除されたときに通知されます。

プロパティ 説明
model string "content"
action string "delete"
data.content Content 削除されたコンテンツの情報

# 型の種類

通知の種類で利用された型のうち、弊社が独自に定義した型について説明します。

# Content型

コンテンツの情報を示します。内容は以下の通りのオブジェクトです。

プロパティ 説明
name string コンテンツ名
title string コンテンツタイトル
description string コンテンツの説明
type string コンテンツ種別
status string 公開設定
duration integer 再生時間(秒)
category_id string カテゴリ ID
labels Array<string> ラベル ID
tags Array<object> タグ。オブジェクトはkeyvalueのプロパティを持ちます
created_at string コンテンツ登録日時
updated_at string コンテンツ最終更新日時

上記の表にない情報はコンテンツ情報取得APIを使用して取得してください。

# その他の仕様

Webhook通知のリクエストの際、レスポンスのHTTPステータスコードが500, 502, 503, 504の場合、最大3回リトライを実行します。

Webhook通知のリクエストはリダイレクトには対応していません。