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

ApsaraVideo Live:CreateEventSub

最終更新日:Jul 15, 2026

チャンネルメッセージをサブスクライブするためのコールバックを作成します。

操作説明

チャンネルメッセージをサブスクライブするためのコールバックを作成します。たとえば、コールバックの作成時に、コールバック URL やイベントタイプなどのパラメーターを設定できます。

QPS 制限

この操作の単一ユーザー QPS 制限は、1 秒あたり 100 回の呼び出しです。制限を超えると、API 呼び出しがスロットリングされ、ビジネスに影響が出る可能性があります。この操作は適切に呼び出してください。

今すぐお試しください

この 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

none

*Rtc

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

なし なし

リクエストパラメーター

パラメーター

必須 / 任意

説明

AppId

string

必須

サブスクライブするアプリケーションの ID です。ApsaraVideo Live > Live+ > ApsaraVideo Real-time Communication > アプリケーション管理 に移動して、アプリケーション ID を確認できます。アプリケーションが存在しない場合は、[アプリケーションの作成] をクリックして作成してください。

9qb1****

ChannelId

string

任意

サブスクライブするチャンネルの ID です。 ListEventSub 操作を呼び出して、サブスクライブ済みのチャンネル ID をクエリできます。

説明
  • Users.N パラメーターが空でない場合、このパラメーターは必須です。

  • ChannelId が * にセットされているか、または空の場合、すべてのチャンネルがサブスクライブされます。各 AppId では、全チャンネルサブスクリプションは 1 つのみ許可されています。

  • 各 AppId では、同時に最大値 20 件のサブスクリプションが許可されています。

123333

Users

array

任意

メッセージをサブスクライブするユーザーです。このパラメーターが空の場合、チャンネル内のすべてのユーザー(配信者と視聴者を含む)がサブスクライブされます。フォーマット:

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

string

任意

ユーザー ID。

user1

Events

array

必須

サブスクリプションイベント。

string

必須

サブスクリプションイベント。有効な値:

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

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

ChannelEvent

CallbackUrl

string

必須

コールバック URL です。コールバックの内容については、以下のコールバック内容の例を参照してください。

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

コールバック

次の例は、指定された CallbackUrl を通じてユーザーにコールバックされる内容を示しています。

Request:

POST /callbackURL

Body
application/json

{
    "MsgId": "Message ID",
    "MsgTimestamp": 12312324, // メッセージ送信時の Unix 時間スタンプ
    "SubscribeID": "Subscription ID",
    "AppId":"",     // このメッセージを生成した AppId 
    "ChannelID":"", // このメッセージを生成したチャンネル
    "Contents": [
      {
        "Event": "UserEvent",// サブスクリプションイベント: チャンネル内のユーザーイベント
        "UserEvent": {
          "UserId": "80331631628*****",    // ユーザー ID
          "EventTag": "Publish",    // イベント (Join, Leave, Publish, Unpublish, Roleupdate など)
          "SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // このイベントを生成した SessionID
          "Timestamp": 1609854786,    // イベント発生時の Unix 時間スタンプ
          "Reason": 1, // 参加または退出の理由。Join イベントでのみ利用可能。
          "Role": 1, //  ロールタイプ: 配信者または視聴者
          "CurrentMedias":"1,2,3"// ストリームタイプ: ユーザーによって公開されたストリーム
        }
      },
      {
        "Event": "ChannelEvent",// サブスクリプションイベント: チャンネルイベント
        "ChannelEvent": {
          "ChannelId": "88888****",
          "EventTag": "Open",   // チャンネルイベント (Open, Close など)
          "Timestamp": 1609854530 // イベント発生時の Unix 時間スタンプ
        }
      }
   ]
}

Response 
HTTP STATUS 200

UserEvent

パラメータータイプ必須説明
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: 画面共有。

ChannelEvent

パラメータータイプ必須説明
EventTagstringはいイベントタイプ。有効な値:
Open: 会議開始。
Close: 会議終了。
Timestampnumberはいイベントが発生した時間スタンプ。

コールバック認証

イベントコールバック認証機能はデフォルトで有効になっています。認証ロジックは以下の通りです。

  • ApsaraVideo Live がコールバックリクエストを呼び出すと、HTTP(S) リクエストヘッダーに Ali-Rtc-Timestamp フィールドと Ali-Rtc-Signature フィールドが含まれ、コールバックメッセージ受信サーバーが署名認証を実行します。Ali-Rtc-Timestamp の値は、Ali-Rtc-Signature=MD5SUM(MD5CONTENT) として計算されます。ここで MD5CONTENT=コールバックドメイン名|Ali-Rtc-Timestamp 値|認証キー です。コールバックドメイン名はコールバック URL で設定されたドメイン名であり、認証キーは AppId 作成時に生成された AppKey です。

  • コールバックメッセージ受信サーバーはコールバックメッセージを受信すると、コールバックドメイン名、Ali-Rtc-Timestamp 値、および認証キーを連結し、MD5 値を計算して暗号化文字列を取得します。その後、計算された暗号化文字列と、ApsaraVideo Real-time Communication によって呼び出された HTTP(S) リクエストヘッダー内の Ali-Rtc-Signature フィールド値を比較します。一致しない場合、リクエストは無効です。

コールバック例外のリトライ

Alibaba Cloud がコールバックリクエストを呼び出した際、ビジネスサーバーが HTTP ステータスコード 200 で応答した場合にのみ、コールバックは成功とみなされます。コールバックが失敗した場合、Alibaba Cloud は 1 秒、2 秒、5 秒、10 秒、1 分、2 分、5 分の間隔で 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. 各 AppId では最大 20 の同時サブスクリプションが許可されており、フルチャンネルサブスクリプションは 1 つのみ許可されています。
400 ErrorInvalidCallBackUrl %s. CallBackURL が無効です。値を確認して再試行してください。
500 ServerError %s. 不明なエラーが発生しました。後でもう一度お試しいただくか、チケットを送信してください。
403 NoAuth %s. 必須の権限がありません。
404 ResourceNotExist %s. リクエストされたリソースが存在しません。リクエストを確認して再試行してください。

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

変更履歴

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