バックエンドサーバーの設定

Vonage Client SDKを使用する場合、バックエンドサーバーはいくつかの主要なコンポーネントを処理する必要があります。 ユーザー そして JWT これらのユーザーのためのものです。これらのさまざまなコンポーネントと、それらがどのように連動しているのかについては、以下をご覧ください。 アプリケーションガイドの作成.

ガイドで説明されているコンセプトのビルド済み実装を見るには、以下のコマンドを編集またはデプロイします。 Client SDK サンプルサーバーテンプレート コード・ハブ

このガイドでは、Node.JSを使用します。 Vonage JWT SDKそして VonageサーバーSDK.しかし、Client SDKのバックエンドサーバーはどの言語でも書くことができます。SDKはNPMを使ってインストールできます:

npm install @vonage/jwt @vonage/server-sdk

ユーザーの作成

SDKがインストールされたので、ユーザを作成することができます:

import { Vonage } from "@vonage/server-sdk";
import { tokenGenerate } from '@vonage/jwt';

const vonage = new Vonage(
    {
      applicationId: process.env.API_APPLICATION_ID,
      privateKey: process.env.PRIVATE_KEY
    }
);

async function createUser(username) {
    try {
        const userResponse = await vonage.users.createUser({
            name: username,
            displayName: username
        });
    } catch (e) {
        console.log(e);
    }
}

Users エンティティのリクエストパラメータとレスポンスについては API仕様.

Client SDK用のJWTの生成

ユーザを作成したら、そのユーザのJWTを作成します。このJWTは、クライアントSDKが以下を呼び出すときに期待するJWTです。 createSession.ユーザーのJWTを作成するには、ACLパスと sub クレーム。ACLパスは、JWTがアクセスできるエンドポイントを制限するために使用される。

注:ACLは、ユーザーが実行できるアクションを制御する。あなたは ACLパス でパーミッションを制限します。

function generateUserJWT(username) {
    const aclPaths =  {
        "/*/users/**": {},
        "/*/conversations/**": {},
        "/*/sessions/**": {},
        "/*/devices/**": {},
        "/*/image/**": {},
        "/*/media/**": {},
        "/*/push/**": {},
        "/*/knocking/**": {},
        "/*/legs/**": {}
    };

    return tokenGenerate(applicationId, privateKey, {
        subject: username,
        acl: aclPaths
    });
}

この生成されたトークンをAndroid、iOS、Web Client SDKアプリケーションに返すエンドポイントをサーバー上に公開することができます:

app.post('/getJWT', async (req, res) => {
    const username = req.body.username;
    try {
        // Perform authorization and validation
        res.json(
            {
                jwt: generateUserJWT(username)
            }
        );
    } catch(e) {
        console.log(e);
    }
});

着信ウェブフックの処理

そのとき serverCall 関数がAndroid、iOS、およびWeb Client SDKアプリケーションで使用されている場合、Vonageアプリケーションで "answer URL "として設定されているURLは、着信リクエストを取得します。このプロセスについては 「電話をかける」ガイド.

サーバーは 呼び出し制御オブジェクト を返します。たとえば、着信をAliceというユーザーに接続するには、以下のようなコールコントロールオブジェクトを返します。

[
  {
    "action": "connect",
    "from": "447700900000",
    "endpoint": [
      {
        "type": "app",
        "user": "Alice"
      }
    ]
  }
]

ご質問がおありですか?

ご不明な点、ご質問、ご意見等ございましたら、下記までご連絡ください。 devrel@vonage.com または Vonage開発者コミュニティSlack.