接続トークンの作成 — Java

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

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

import com.opentok.OpenTok;
import com.opentok.exception.OpenTokException;

class Test {
    public static void main(String argv[]) throws OpenTokException {
        // Set the following constants to your OpenTok API key and API secret.
        // See /account/.
        OpenTok opentok = new OpenTok(API_KEY, API_SECRET);

        //Generate a basic session. Or you could use an existing session ID.
        String sessionId = opentok.createSession().getSessionId();

        String token = opentok.generateToken(sessionId);
        System.out.println(token);
    }
}

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

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

import com.opentok.OpenTok;
import com.opentok.Role;
import com.opentok.TokenOptions;
import com.opentok.exception.OpenTokException;

class Test {
    public static void main(String argv[]) throws OpenTokException {
        // Set the following constants to your OpenTok API key and API secret.
        // See /account/.
        OpenTok opentok = new OpenTok(API_KEY, API_SECRET);

        //Generate a basic session. Or you could use an existing session ID.
        String sessionId = opentok.createSession().getSessionId();

        // Replace with meaningful metadata for the connection.
        String connectionMetadata = "username=Bob,userLevel=4";

        // Generate a token. Use the Role value appropriate for the user.
        TokenOptions tokenOpts = new TokenOptions.Builder()
          .role(Role.MODERATOR)
          .expireTime((System.currentTimeMillis() / 1000) + (7 * 24 * 60 * 60)) // in one week
          .data(connectionMetadata)
          .build());
        String token = opentok.generateToken(sessionId, tokenOpts);
        System.out.println(token);
    }
}

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

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