チュートリアル¶
概要¶
Sora Cloud は WebRTC SFU Sora のクラウド版です。
用語¶
- 組織 (Org)
Sora Cloud を契約する法人または団体に割り当てられる Sora Cloud を利用する際の単位です
- メンバー
組織の中でアカウントを登録する個人です
- アカウント
メンバーのメールアドレス 1 つに対して 1 つのアカウントが作成されます
1 つの組織で最大 5 つのアカウントが登録できます
- API キー
Sora に接続する際に利用する JWT を作成するために必要なキーです
- プロジェクト (Project)
複数の異なるサービスや検証環境など、利用状況を分けて管理する際の単位です
1 つの組織で最大 5 つのプロジェクトを作成できます
- プロジェクト ID
Sora に接続する際に利用するプロジェクト単位のユニークな ID です
- HTTP クライアント
- Sora 開発ツール
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 Key (Primary API Key) からクリップポードにコピーして利用してください。
$ https -A bearer -a <API-KEY> \
POST api.sora-cloud.shiguredo.app/orgs/get-total-live-concurrent-connections
HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: timeout=5
content-length: 224
content-type: application/json; charset=UTF-8
date: Sat, 16 Apr 2022 11:28:42 GMT
3
Sora Cloud で利用できる様々な API は Sora Cloud API にありますのでご確認ください。
Sora の API を利用してみる¶
$ https -A bearer -a <API-KEY> \
POST api.sora-cloud.shiguredo.app/sora-api \
x-sora-target:'Sora_20201013.ListChannelConnections' \
channel_id='sora-cloud@25PO5TGFD26VB62G7C7DFAAYGA4J3CJN'
HTTP/1.1 200 OK
CF-Cache-Status: DYNAMIC
CF-Ray: 70db04327e3fefb2-NRT
Connection: keep-alive
Content-Encoding: gzip
Content-Type: applicaution/json
Date: Thu, 19 May 2022 07:11:04 GMT
Server: cloudflare
Transfer-Encoding: chunked
Vary: Accept-Encoding
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
[
{
"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 からのリクエストであることを確認することができます。
署名 をご確認ください。