チュートリアル

概要

Sora Cloud は WebRTC SFU Sora のクラウド版です。

用語

組織 (Org)

Sora Cloud を契約する法人または団体に割り当てられる Sora Cloud を利用する際の単位です

メンバー

組織の中でアカウントを登録する個人です

アカウント

メンバーのメールアドレス 1 つに対して 1 つのアカウントが作成されます

1 つの組織で最大 5 つのアカウントが登録できます

API キー

Sora に接続する際に利用する JWT を作成するために必要なキーです

プロジェクト (Project)

複数の異なるサービスや検証環境など、利用状況を分けて管理する際の単位です

1 つの組織で最大 5 つのプロジェクトを作成できます

プロジェクト ID

Sora に接続する際に利用するプロジェクト単位のユニークな ID です

HTTP クライアント

curl などの CLI から利用可能なツールです

このドキュメントでは API を実行する例で HTTP クライアントの curl を利用しています

また、 curl の JSON レスポンスを整形するために、コマンドラインツール jq を利用しています

Sora 開発ツール

https://sora-devtools.shiguredo.app/

Sora Cloud を利用する準備をする

プロジェクトを作成する

管理コンソールから Projects タブをクリックし、 Create project ボタンを押し、プロジェクトを作成してください。

プロジェクト名に好きな文字列を入力してください。ここでは HamHamHam としています。

Sora へ接続する

前提

ブラウザは最新のブラウザを利用してください。 Chrome や Edge をおすすめします。

Sora 開発ツールを使った動作確認

プロジェクトの ... をクリックして Create Access Token をクリックしてください。

チャネル名に好きな文字列を入力してください。ここでは sora-devtools としています。

文字列を入力したら Create Access Token をクリックしてください。

Sora DevTools の URL をクリップボードにコピーしたら、ブラウザに貼り付けてください。

あとは、connect を押すことで接続されます。もう一つタブを開いて同じように connect を押してください。 それぞれの音声や映像が配信されたら成功です。

同時接続数を確認する

3 つの接続を維持したまま Sora Cloud の API で今どのくらいの同時接続数があるか確認してみます。

API キーはプロジェクトから ... をクリックして Edit Project をクリックしてください。

Security の API キー (Primary API Key) からクリップボードにコピーして利用してください。

$ curl -sS \
    -X POST \
    https://api.sora-cloud.shiguredo.app/orgs/get-total-live-concurrent-connections \
    -H "Authorization: Bearer <API-KEY>" \
    | jq .
3

Sora Cloud で利用できる様々な API は Sora Cloud API にありますのでご確認ください。

Sora の API を利用する

$ curl -sS \
    -X POST \
    https://api.sora-cloud.shiguredo.app/sora-api \
    -H "Authorization: Bearer <API-KEY>" \
    -H "x-sora-target: Sora_20201013.ListChannelConnections" \
    --json '{"channel_id":"sora-cloud@25PO5TGFD26VB62G7C7DFAAYGA4J3CJN"}' \
    | jq .
[
    {
        "audio": {
            "codec_type": "OPUS"
        },
        "bundle_id": "TP8RRG5SN54DD7VBMHZDB0SJW0",
        "channel_id": "sora-cloud@25PO5TGFD26VB62G7C7DFAAYGA4J3CJN",
        "client_id": "TP8RRG5SN54DD7VBMHZDB0SJW0",
        "connection_id": "TP8RRG5SN54DD7VBMHZDB0SJW0",
        "created_time": 1652944257911575,
        "created_timestamp": "2022-05-19T07:10:57.911575Z",
        "event_metadata": "REDACTED",
        "multistream": true,
        "role": "sendrecv",
        "session_id": "47Q2QVK9DD7DHCZ8W37NPJNADM",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 500,
            "codec_type": "VP9"
        }
    },
    {
        "audio": {
            "codec_type": "OPUS"
        },
        "bundle_id": "MHJ8PB68MD2FFB188AR8VT0S2M",
        "channel_id": "sora-cloud@25PO5TGFD26VB62G7C7DFAAYGA4J3CJN",
        "client_id": "MHJ8PB68MD2FFB188AR8VT0S2M",
        "connection_id": "MHJ8PB68MD2FFB188AR8VT0S2M",
        "created_time": 1652944261045734,
        "created_timestamp": "2022-05-19T07:11:01.045734Z",
        "event_metadata": "REDACTED",
        "multistream": true,
        "role": "sendrecv",
        "session_id": "47Q2QVK9DD7DHCZ8W37NPJNADM",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 500,
            "codec_type": "VP9"
        }
    }
]

アプリケーション連携

Sora のドキュメントにアプリケーション連携チュートリアルがありますので、こちらをご確認ください。

https://sora-doc.shiguredo.jp/APP_INTEGRATE_TUTORIAL

ウェブフック署名

Sora Cloud のウェブフックには署名が付与されています。 署名をチェックすることで Sora Cloud からのリクエストであることを確認することができます。

署名 をご確認ください。