プロジェクト アクセストークン API¶
概要¶
この API では、プロジェクトの API キーを利用してそのプロジェクトの JWT を作成できます。
API を使わない JWT 生成¶
Sora Cloud の認証で利用するアクセストークンは JWT (JSON Web Token) を採用しています。 そのため、このアクセストークン API を利用しなくても、プロジェクトの API キーを使ってアクセストークンを生成することができます。
Sora Cloud API を利用できる環境では API キーをすでに保持しており、アクセストークン API を利用せずに JWT を生成することが可能です。 そのため、ネットワークを経由したアクセストークン API 実行による JWT 生成を利用せずに、アプリケーション側で JWT を素早く生成する構成を推奨しています
JWT の詳細仕様と生成例については 認証 をご確認ください。
アクセストークン生成¶
アクセストークンを指定できます。
すべての指定はオプションです。
channel_id¶
オプション
- 型:
string
Sora のチャネル ID を指定します。
チャネル ID は <チャネル名>@<プロジェクト ID> です。
チャネル名には好きな文字列を指定可能です。
role¶
オプション
- 型:
string
Sora のロール (sendrecv / sendonly / recvonly) を指定します。
max_channel_connections¶
オプション
- 型:
integer
- 範囲:
0-5000
チャネルの最大同時接続数を指定します。この設定は接続単位で影響します。
例えばこの設定が 1 のトークンを利用した接続はチャネルに 1 接続以上存在する場合は接続ができなくなります。
また、この設定が 0 のトークンを利用した場合、必ず接続に失敗します。
not_before¶
オプション
- 型:
RFC 3339
- URL:
JWT が有効になる日時を指定します。数値ではなく RFC 3339 フォーマットで指定してください。
expiration_time¶
オプション
- 型:
RFC 3339
- URL:
JWT の有効期限を指定します。数値ではなく RFC 3339 フォーマットで指定してください。
jwt_id¶
オプション
- 型:
string (UUID)
- URL:
jwt_id を指定する場合は UUID を指定する必要があります。
jwt_id を指定しなくても自動で UUID を生成し jti Claim を付与して JWT を生成します。
実行例¶
$ https -A bearer -a <API-KEY> \
POST api.sora-cloud.shiguredo.app/projects/create-access-token \
channel_id=<Channel-ID> \
-vvv
POST /projects/create-access-token HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Authorization: Bearer <API-KEY>
Connection: keep-alive
Content-Length: 60
Content-Type: application/json
Host: api.sora-cloud.shiguredo.app
User-Agent: HTTPie/3.2.0
{
"channel_id": "<Channel-ID>"
}
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 375
Content-Type: application/json; charset=UTF-8
Date: Thu, 21 Dec 2023 09:35:10 GMT
Strict-Transport-Security: max-age=15552000; includeSubDomains; preload
Vary: Accept-Encoding
alt-svc: h3=":443"; ma=86400
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6I..."
}
アクセストークンに有効期限を設定する場合の実行例
$ https -A bearer -a <API-KEY> \
POST api.sora-cloud.shiguredo.app/projects/create-access-token \
channel_id=<Channel-ID> \
not_before='2022-10-20T10:00:00+09:00' \
expiration_time='2023-10-27T10:00:00+09:00' \
-vvv
アクセストークンに最大同時接続数を設定する場合の実行例
$ https -A bearer -a <API-KEY> \
POST api.sora-cloud.shiguredo.app/projects/create-access-token \
channel_id=<Channel-ID> \
max_channel_connections:=10 \
-vvv