# 外部通知
本章では、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> | タグ。オブジェクトはkey とvalue のプロパティを持ちます |
created_at | string | コンテンツ登録日時 |
updated_at | string | コンテンツ最終更新日時 |
上記の表にない情報はコンテンツ情報取得APIを使用して取得してください。
# その他の仕様
Webhook通知のリクエストの際、レスポンスのHTTPステータスコードが500, 502, 503, 504の場合、最大3回リトライを実行します。
Webhook通知のリクエストはリダイレクトには対応していません。