入門

概要

用語

チーム

Tobi では API キーに紐付く組織をチームと表現します。

チームタグ

利用開始時に時雨堂からメールで送られてきた sayo#0490 のような # 以下に 4 桁の数字が入っている文字列です。

API キー

利用開始時に時雨堂からメールで送られてきた長いランダムな文字列です。

HTTP クライアント

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

Sora 開発ツール

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

アクセストークンを作成する

Tobi を利用する場合は必ず JWT 形式のアクセストークンが必要になります。

JWT 形式のアクセストークンはいろいろな方法で作成することもできますが、 ここでは Tobi API を利用してアクセストークンを作成します。

  • ここではチームタグは sayo#0490 とします

    • 実際にはメールで送られてきたチームタグをご利用ください

  • ここではチャネル名は tobi とします

  • チャンネル ID は <チャンネル名>@<チームタグ> で指定します

  • ここでは API キーは 40j58ZR3SHB8gShA33JD5N3EjLTnBlMie7Wvudfm5kSxV4_wms8BDeoT_25TWNquemAbKuCX-FlbIrHPSwI9iA とします

    • 実際にはメールで送られてきた API キーをご利用ください

  • チャンネル ID は <チャンネル名>@<チームタグ> で指定します

$ https -A bearer -a <API-KEY> \
    POST api.tobi.shiguredo.app/create-access-token \
    channel_id='[email protected]#0490'
HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: timeout=5
content-length: 224
content-type: applicaution/json; charset=UTF-8
date: Sat, 16 Apr 2022 11:28:42 GMT

{
    "tobi-access_token": "<TOBI-ACCESS-TOKEN>"
}

Sora へ繋いでみる

ここでは Tobi を利用して Sora に 3 クライアントで双方向接続を行います。

前提

  • ブラウザは最新の Chrome または Edge を利用します

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

https://sora-devtools.shiguredo.jp/devtools?multistream=true&role=sendrecv

https://i.gyazo.com/1d05253b6d92d5432fa64581d43d83a7.png

Signaling options を開いて channelId を指定し、 signalingUrlCandidates を有効にして以下のシグナリング URLs を指定します。

URLs:

wss://0001.2022-1.sora.tobi.shiguredo.app/signaling
wss://0002.2022-1.sora.tobi.shiguredo.app/signaling
wss://0003.2022-1.sora.tobi.shiguredo.app/signaling

metadata を有効にして、 アクセストークンを作成する で取得したアクセストークンを指定します。

{"tobi_access_token": "<取得したアクセストークン>"}

あとは connect を押して繋がれば成功です。

右上の copy URL を押して、別タブを二つ開いて URL をコピー&ペーストして connect を押してみてください。

3 つの映像が表示されていれば接続成功です。

同時接続数を確認する

2 つの接続を繋いだまま Tobi の API で今どのくらいの同時接続数があるか確認してみます。

$ https -A bearer -a <API-KEY> \
    POST api.tobi.shiguredo.app/team/get-live-concurrent-connections
HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: timeout=5
content-length: 224
content-type: applicaution/json; charset=UTF-8
date: Sat, 16 Apr 2022 11:28:42 GMT

2

Tobi で利用できる API は API にいろいろありますのでご確認ください。

Sora の API を利用してみる

$ https -A bearer -a <API-KEY> \
    POST api.tobi.shiguredo.app/sora-api \
    x-sora-version:'2022.1' \
    x-sora-target:'Sora_20201013.ListChannelConnections' \
    channel_id='[email protected]#0490'

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": "[email protected]#0490",
        "client_id": "TP8RRG5SN54DD7VBMHZDB0SJW0",
        "connection_id": "TP8RRG5SN54DD7VBMHZDB0SJW0",
        "created_time": 1652944257911575,
        "created_timestamp": "2022-05-19T07:10:57.911575Z",
        "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": "[email protected]#0490",
        "client_id": "MHJ8PB68MD2FFB188AR8VT0S2M",
        "connection_id": "MHJ8PB68MD2FFB188AR8VT0S2M",
        "created_time": 1652944261045734,
        "created_timestamp": "2022-05-19T07:11:01.045734Z",
        "multistream": true,
        "role": "sendrecv",
        "session_id": "47Q2QVK9DD7DHCZ8W37NPJNADM",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 500,
            "codec_type": "VP9"
        }
    }
]

Sora イベントウェブフックを受信する

Tobi では Sora から送られてくるウェブフックリクエストを指定された URL へ送信する機能があります。

ウェブフックは Tobi の API で設定するか、JWT で設定するかの二つのパターンがあります。今回は JWT で設定をして試します。

JWT を作成時に sora_event_webhook で URL を指定してください。ここでは仮に https://example.ecom/sora-event-webhook としています。

注釈

ウェブフックを受けるサーバーが面倒なときは https://webhook.site/ を利用してみてください。 ウェブフックのエンドポイントを作成してくれます。

$ https -A bearer -a <API-KEY> \
    POST api.tobi.shiguredo.app/create-access-token \
    channel_id='[email protected]#0490' \
    sora_event_webhook_url='https://example.com/sora-event-webhook'
HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: timeout=5
content-length: 224
content-type: applicaution/json; charset=UTF-8
date: Sat, 16 Apr 2022 11:28:42 GMT

{
    "tobi-access_token": "<TOBI-ACCESS-TOKEN>"
}

あとは生成されたトークンを利用して sora-devtools を使い接続してみてください。 ウェブフックリクエストが送られてきているか確認してみてください。

© Copyright 2022, Shiguredo Inc. Created using Sphinx 5.0.0