すべてのプロダクト
Search
ドキュメントセンター

:CreateEventSub

最終更新日:Dec 13, 2025

チャンネルまたはユーザーイベントをサブスクライブするためのコールバックを作成します。

操作説明

この操作を呼び出して、チャンネルまたはユーザーイベントをサブスクライブするためのコールバックを作成できます。コールバックを作成する際に、コールバック URL やイベントタイプなどのパラメーターを設定できます。

QPS 制限

この操作は、アカウントごとに毎秒 100 回まで呼び出すことができます。この制限を超えたリクエストは破棄され、サービスが中断されます。この操作を呼び出す際は、この制限に注意することを推奨します。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

下表に、この API を呼び出すために必要な認証情報を示します。認証情報は、RAM (Resource Access Management) ポリシーを使用して定義できます。以下で各列名について説明します。

  • アクション:特定のリソースに対して実行可能な操作。ポリシー構文ではAction要素として指定します。

  • API:アクションを具体的に実行するための API。

  • アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。

  • リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定してください。

    • リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーのResource要素で対応する ARN を指定してください。

    • リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーのResource要素でアスタリスク (*) でマークされます。

  • 条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。

  • 依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。

アクション

アクセスレベル

リソースタイプ

条件キー

依存アクション

live:CreateEventSub

*Rtc

acs:live::{#accountId}:rtc/{#AppId}

なし なし

リクエストパラメーター

パラメーター

必須 / 任意

説明

AppId

string

必須

アプリケーション ID。

9qb1****

ChannelId

string

任意

チャネル ID。ListEventSub 操作を呼び出して、チャネル ID をクエリできます。

説明
  • このパラメーターは、Users.N パラメーターを指定する場合に必須です。

  • このパラメーターを * に設定するか、指定しない場合、すべてのチャンネルがサブスクライブされます。

  • 各アプリケーション ID は、1 つの全チャンネルサブスクリプションのみを許可します。

123333

Users

array

任意

イベントをサブスクライブするユーザー。このパラメーターを空のままにすると、ストリーマーや視聴者を含む、チャンネル内のすべてのユーザーのイベントがサブスクライブされます。このパラメーターは次のフォーマットで指定します:

Users.1=****
Users.2=****
......

string

任意

ユーザー ID。

user1

Events

array

必須

サブスクライブするイベント。

string

必須

イベントのタイプ。有効な値:

  • ChannelEvent:チャンネルイベント。

  • UserEvent:チャンネル内のユーザーイベント。

ChannelEvent

CallbackUrl

string

必須

コールバック URL。コールバック URL に送信されるメッセージの内容の詳細については、このトピックの「コールバック」セクションをご参照ください。

http://****.com/callback

コールバック

コールバックメッセージは、CallbackUrl パラメーターで指定されたコールバック URL に送信されます。次のサンプルコードに例を示します:

リクエスト:

POST /callbackURL

本文
application/json

{
    "MsgId": "メッセージ ID",
    "MsgTimestamp": 12312324, // メッセージが送信されたときの UNIX タイムスタンプ。
    "SubscribeID": "サブスクリプション ID",
    "AppId":"",     // メッセージが生成されたアプリケーションの ID。
    "ChannelID":"", // メッセージが生成されたチャンネルの ID。
    "Contents": [
      {
        "Event": "UserEvent",// サブスクライブされたイベントのタイプ。この場合、タイプはユーザーイベントです。
        "UserEvent": {
          "UserId": "80331631628*****",    // ユーザー ID。
          "EventTag": "Publish",    // イベント。有効な値:Join、Leave、Publish、Unpublish、Roleupdate。
          "SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // イベントが生成されたセッションの ID。
          "Timestamp": 1609854786,    // イベントが発生したときの UNIX タイムスタンプ。
          "Reason": 1, // チャンネルへの参加または退出の理由。このパラメーターは、イベントが Join イベントの場合にのみ利用可能です。
          "Role": 1, // ユーザーのロール。ロールにはストリーマーと視聴者が含まれます。
          "CurrentMedias":"1,2,3"// ユーザーによってアップストリーミングされたストリームのタイプ。
        }
      },
      {
        "Event": "ChannelEvent",// サブスクライブされたイベントのタイプ。この場合、タイプはチャンネルイベントです。
        "ChannelEvent": {
          "ChannelId": "88888****",
          "EventTag": "Open",   // イベント。有効な値:Open と Close。
          "Timestamp": 1609854530 // イベントが発生したときの UNIX タイムスタンプ。
        }
      }
   ]
}

応答
HTTP STATUS 200

ユーザーイベントのパラメーター

パラメータータイプ必須説明
UserIdstringはいユーザー ID。
SessionIdstringはいセッション ID。
EventTagstringはいイベント。有効な値:Join:ユーザーがチャンネルに参加しました。Leave:ユーザーがチャンネルから退出しました。PublishVideo:ユーザーがビデオストリームをアップストリーミングしました。PublishAudio:ユーザーがオーディオストリームをアップストリーミングしました。PublishScreen:ユーザーが画面共有のためのストリームをアップストリーミングしました。UnpublishVideo:ユーザーがビデオストリームのアップストリーミングを停止しました。UnpublishAudio:ユーザーがオーディオストリームのアップストリーミングを停止しました。UnpublishScreen:ユーザーが画面共有のためのストリームのアップストリーミングを停止しました。Roleupdate:ユーザーのロールが変更されました。
Timestampnumberはいイベントが発生したときのタイムスタンプ。
Reasonintegerはいチャンネルへの参加または退出の理由。このパラメーターは、イベントが Join イベントの場合にのみ利用可能です。有効な値:1:ユーザーが必要に応じてチャンネルに参加または退出しました。2:ユーザーがすでにチャンネルにいるときに再接続して再度チャンネルに参加しました。3:ユーザーがチャンネル間でストリームリレーを実行しました。4:ユーザーがタイムアウトによりチャンネルから退出しました。5:ユーザーが新しいセッションを開始し、現在のセッションで強制的にオフラインになりました。6:ユーザーがチャンネルからキックアウトされました。7:チャンネルが閉じられました。
Roleintegerはいユーザーのロール。有効な値:1:ストリーマー、2:視聴者
CurrentMediasintegerはいストリームのタイプ。有効な値:1:オーディオ、2:ビデオ、3:画面共有

チャンネルイベントのパラメーター

パラメータータイプ必須説明
EventTagstringはいイベント。有効な値:Open:チャンネルが開かれました。Close:チャンネルが閉じられました。
Timestampnumberはいイベントが発生したときのタイムスタンプ。

コールバック認証

デフォルトでは、コールバック認証が有効になっています。次の認証ロジックが適用されます:

  • ApsaraVideo Live がコールバックリクエストを開始すると、HTTP または HTTPS リクエストに Ali-Rtc-Timestamp および Ali-Rtc-Signature ヘッダーが含まれ、コールバックメッセージ受信サーバーが署名を認証できるようになります。Ali-Rtc-Signature の値は、次の数式に基づいて計算されます:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。この数式では、MD5CONTENT は「コールバックドメイン名|Ali-Rtc-Timestamp の値|認証キー」というフォーマットの文字列です。コールバックドメイン名は、コールバック URL 内のドメイン名です。認証キーは、アプリケーションの AppKey です。

  • コールバックメッセージを受信した後、コールバックメッセージ受信サーバーは、コールバックドメイン名、Ali-Rtc-Timestamp ヘッダーの値、および認証キーを前述のフォーマットで連結します。サーバーは文字列の MD5 値を計算して暗号化された文字列を取得します。次に、サーバーは暗号化された文字列を、Real-Time Communication (RTC) によって開始された HTTP または HTTPS リクエストの Ali-Rtc-Signature ヘッダーの値と比較します。2 つの値が異なる場合、リクエストは無効です。

コールバックリトライ

Alibaba Cloud がコールバックリクエストを開始した後、ご利用のビジネスサーバーから HTTP ステータスコード 200 が返された場合にのみ、コールバックは成功したと見なされます。コールバックが失敗した場合、ApsaraVideo Live は 1 秒、2 秒、5 秒、10 秒、60 秒、120 秒、300 秒の間隔でコールバックリクエストを 7 回再送します。コールバックリクエストが再送されるたびに、コールバックレコードが生成されます。

例外処理

チャンネルに参加した、またはアップストリーミングを開始したクライアントと Alibaba Cloud サーバーとの間には、キープアライブメカニズムが実装されています。サーバーがクライアントから 90 秒間ハートビート情報を受信しない場合、サーバーはクライアントがタイムアウトし、ユーザーがチャンネルから退出したとみなし、コールバックをトリガーします。ハートビートの検出失敗は、ネットワーク切断が発生した場合や、アプリケーションが異常終了した場合に発生します。

レスポンスフィールド

フィールド

説明

object

応答のスキーマ

RequestId

string

リクエスト ID。

760bad53276431c499e30dc36f6b****

SubscribeId

string

サブスクリプション ID。

ad53276431c****

成功レスポンス

JSONJSON

{
  "RequestId": "760bad53276431c499e30dc36f6b****",
  "SubscribeId": "ad53276431c****"
}

エラーコード

HTTP ステータスコード

エラーコード

エラーメッセージ

説明

400 InputInvalid %s.
400 QuotaLimitError %s.
400 ErrorInvalidCallBackUrl %s.
500 ServerError %s.
403 NoAuth %s.
404 ResourceNotExist %s.

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。