接続トークンの作成 — Node.js

OpenTokセッションに接続するユーザーを認証するには、クライアントはトークンを使用して接続する必要があります(参照: この概要).

以下の Node.js コードは、OpenTok の Node.js サーバーサイドライブラリを使用してトークンを生成する方法を示しています:

// Set the following constants with the API key and API secret
// that you receive when you sign up to use the OpenTok API:
var opentok = new OpenTok(API_KEY, API_SECRET);

//Generate a basic session. Or you could use an existing session ID.
var sessionId;
opentok.createSession({}, function(error, session) {
  if (error) {
    console.log("Error creating session:", error)
  } else {
    sessionId = session.sessionId;
    console.log("Session ID: " + sessionId);
  }
});

var token = opentok.generateToken(sessionId);

を呼び出す。 generateToken() このメソッドは文字列を返します。この文字列がトークンです。

以下の Node.js コードは、「publisher」というロールを持ち、接続メタデータ文字列を含むトークンを取得する方法を示しています:

// Set the following constants with the API key and API secret
// that you receive when you sign up to use the OpenTok API:
var opentok = new OpenTok(API_KEY, API_SECRET);

//Generate a basic session. Or you could use an existing session ID.
var sessionId;
var token
opentok.createSession({}, function(error, session) {
  if (error) {
    console.log("Error creating session:", error)
  } else {
    sessionId = session.sessionId;
    console.log("Session ID: " + sessionId);
    //  Use the role value appropriate for the user:
    var tokenOptions = {};
    tokenOptions.role = "publisher";
    tokenOptions.data = "username=bob";

    // Generate a token.
    token = opentok.generateToken(sessionId, tokenOptions);
    console.log(token);
  }
});

}

このメソッドは、以下の引数を受け取ります:

  • sessionId (文字列) — ユーザーが接続するセッションに対応するセッション ID。
  • options (オブジェクト) — トークンのオプション設定を含むオブジェクト:
    • role (文字列) — オプション。ユーザーが持つ役割を定義します。役割には、「subscriber」、「publisher」、「moderator」の3つがあります。subscriberは、セッション内のストリームを購読することしかできません(配信はできません)。 パブリッシャーは、セッションへのストリームの購読および配信が可能で、シグナリングAPIも使用できます。モデレーターはパブリッシャーの権限に加え、他のユーザーに対してセッションからの切断や配信の中止を強制することもできます。値が指定されていない場合のデフォルトの役割はパブリッシャーです。
    • data (文字列) — 省略可能。接続に関するメタデータを含む文字列です。たとえば、ユーザー ID や名前、あるいは接続に関するその他のデータを渡すことができます。このデータは、Applications に応じて、サーバー側のデータベースから取得するか、クライアントから提供されたデータから取得することができます。
    • expireTime (数値) — 省略可。トークンの有効期限。Unix タイムスタンプ(秒単位)の整数値として指定します。この値を指定しない場合、トークンは作成から 24 時間後に失効します。 expire_time 値が指定されている場合、その値は作成日時から30日以内である必要があります。