バックエンドサーバーの設定
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.