Open takaokouji opened 7 months ago
旧SkyWayのAPIは、APIキーをソースコードに埋め込んで使用しています。
チュートリアルの注意書きで、トークンの生成をサーバでおこない、クライアントへ渡すべきとあります。 現在のスモウルビーの使い方とは違うように思いました。
本チュートリアルでは、すぐに通信を試していただくために、トークン生成をクライアントアプリケーションで実装していますが、 本来、SkyWay Auth Token はサーバーアプリケーションで生成してクライアントアプリケーションに渡すようにするべきです。 クライアントアプリケーションでトークン生成を行った場合、任意の Channel(Room) に入ることができるようなトークンを第三者が作成する可能性があります。
トークンの生成でアプリケーションIDとシークレットキーを指定する必要があるので、そのためにサーバで生成するのが推奨されているようです。
const token = new SkyWayAuthToken({
jti: uuidV4(),
iat: nowInSec(),
exp: nowInSec() + 60 * 60 * 24,
scope: {
app: {
id: "ここにアプリケーションIDをペーストしてください",
turn: true,
actions: ["read"],
channels: [
{
id: "*",
name: "*",
actions: ["write"],
members: [
{
id: "*",
name: "*",
actions: ["write"],
publication: {
actions: ["write"],
},
subscription: {
actions: ["write"],
},
},
],
sfuBots: [
{
actions: ["write"],
forwardings: [
{
actions: ["write"],
},
],
},
],
},
],
},
},
}).encode("ここにシークレットキーをペーストしてください");
https://skyway.ntt.com/ja/docs/user-guide/javascript-sdk/quickstart/
そのため、このトークンを返すサーバを用意していただく必要があるようです。
SkyWayの動作を確認するため https://github.com/smalruby/smalruby3-develop でDocker環境を利用しようとしましたが、こちらのDockerイメージのビルドに失敗しました。
docker compose build
すると途中でエラーが発生して失敗します。
各 gui
と lib
のディレクトリ以下で同じように docker build
すると失敗しました。
gui
の方は npm install の時にエラーが発生しました。
lib
の方は ruby:2.3.8-slim-jessie
が apt update
する時に jessie のパッケージ取得先がなくなったことによる影響のようでした。
以下のような似たようなissueが作成されていました。
https://github.com/docker-library/ruby/issues/276
Dockerイメージでの確認方法は使用できないようなので、手元で smalruby3-gui
のディレクトリ以下で npm install
して npm start
して起動できるかを確認しました。
スモウルビーが起動するところまでは確認しました。
TL;DR
Support the new Skyway API of the Mesh extension. The current Skyway API is obsolated.
Japanese: Mesh拡張で Skyway の新しいAPIを使う。従来の Skyway API は継続利用できるが新しくAPIキーが発行されない。そのため、スモウルビーのmodが開発できない。
Details
Mesh拡張で Skyway の新しいAPIを使えるようにします。 https://skyway.ntt.com/ja/
まずは従来の Skyway API を使ったバージョンもつかえるようにします。 モジュール化して、URLに新しいバージョンを使う旨のフラグを指定すると、新しいバージョンを使えるようにします。 しばらく使ってみて問題なければ、従来のバージョンを廃止して新しいバージョンのみに切り替えます。