アプリケーション、ユーザー、トークンの作成
Client SDKを使用するには、始める前に3つの設定が必要です:
- Vonageアプリケーション - アプリケーションには、構築するアプリのコンフィギュレーションが含まれています。 アプリケーションを構築する。
- ユーザー - Vonage アプリケーションに関連するユーザー。以下のことが期待されます。 ユーザは独自の認証システムと一対一にマッピングされます。
- JSONウェブトークン、JWT - Client SDKは認証にJWTを使用します。ユーザーがログインして SDKの機能を使用するには、ユーザーごとにJWTを提供する必要があります。JWTには、Vonage プラットフォームがリクエストを認証するために必要なすべての情報、および関連する Applications、Users、permissions などの情報が含まれています。 パーミッションなどの情報が含まれています。
これらはすべて バックエンドによって作成される.すぐにSDKを使い始めたい場合は を使用してクライアントSDKで使用するバックエンドアプリケーションをデプロイすることもできます。 Client SDK サンプルサーバーテンプレート. そうでない場合は、このチュートリアルで Vonage CLI.
前提条件
以下を確認してください:
- Vonageアカウント サインアップ
- ノードジェーエス とNPMをインストール
- をインストールします。 Vonage CLI.
Vonageアプリケーションの作成
Vonageアプリケーションを作成する必要があります。この例では、In-App Voiceユースケースを処理できるアプリケーションを作成します。
- まだプロジェクト・ディレクトリを作成していない場合は、まずプロジェクト・ディレクトリを作成する。
- 今作成したプロジェクト・ディレクトリに移動する。
- 以下のコマンドを使用して、Voice および WebRTC 機能を持つ Vonage アプリケーションを作成および設定します。以下のコマンドを使用します。
Webhook URLを独自のものに置き換えてください。お使いのプラットフォームが IP
アドレス範囲を使用して受信できるトラフィックを制限している場合は VonageのIPアドレス
を許可リストに追加する。IPアドレスは、GETリクエストを以下に送ることによってプログラムで取得することができる。
https://api.nexmo.com/ips-v4.
vonage apps create 'Your application'
✅ Creating Application
Saving private key ... Done!
Application created
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
None Enabled
vonage apps create 'Your application'
✅ Creating Application
Saving private key ... Done!
Application created
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
None Enabled
音声機能を追加する:
vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice `
--voice-answer-url='https://example.com/webhooks/voice/answer' `
--voice-event-url='https://example.com/webhooks/voice/event' `
--voice-fallback-url='https://example.com/webhooks/voice/fallback'
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
VOICE:
Uses Signed callbacks: On
Conversation TTL: 41 hours
Leg Persistence Time: 6 days
Event URL: [POST] https://example.com/webhooks/voice/event
Answer URL: [POST] https://example.com/webhooks/voice/answer
Fallback URL: [POST] https://example.com/webhooks/voice/fallback
vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice ^
--voice-answer-url='https://example.com/webhooks/voice/answer' ^
--voice-event-url='https://example.com/webhooks/voice/event' ^
--voice-fallback-url='https://example.com/webhooks/voice/fallback'
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
VOICE:
Uses Signed callbacks: On
Conversation TTL: 41 hours
Leg Persistence Time: 6 days
Event URL: [POST] https://example.com/webhooks/voice/event
Answer URL: [POST] https://example.com/webhooks/voice/answer
Fallback URL: [POST] https://example.com/webhooks/voice/fallback
RTC機能の追加
vonage apps capabilities update 00000000-0000-0000-0000-000000000000 messages `
--messages-inbound-url='https://example.com/messages/inboud' `
--messages-status-url='https://example.com/messages/status' `
--messages-version='v1' `
--no-messages-authenticate-media
✅ Fetching Application
✅ Adding messages capability to application 00000000-0000-0000-0000-000000000000
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
MESSAGES:
Authenticate Inbound Media: Off
Webhook Version: v1
Status URL: [POST] https://example.com/messages/status
Inbound URL: [POST] https://example.com/messages/inboud
vonage apps capabilities update 00000000-0000-0000-0000-000000000000 messages ^
--messages-inbound-url='https://example.com/messages/inboud' ^
--messages-status-url='https://example.com/messages/status' ^
--messages-version='v1' ^
--no-messages-authenticate-media
✅ Fetching Application
✅ Adding messages capability to application 00000000-0000-0000-0000-000000000000
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
MESSAGES:
Authenticate Inbound Media: Off
Webhook Version: v1
Status URL: [POST] https://example.com/messages/status
Inbound URL: [POST] https://example.com/messages/inboud
その後、アプリケーションが作成される。秘密鍵ファイル private.key も作成される。
アプリケーションの作成とアプリケーションの機能については、次の章で詳しく説明します。 アプリケーションガイド.
ユーザーの作成
Vonage Clientにログインし、SDKの機能に参加するユーザを作成します:会話、通話など。
ターミナルで以下のコマンドを実行し、Aliceというユーザーを作成してください:
vonage users create `
--name='Alice'
✅ Creating User
User ID: USR-00000000-0000-0000-0000-000000000000
Name: Alice
Display Name: Not Set
Image URL: Not Set
Time to Live: Not Set
Channels:
None Set
vonage users create ^
--name='Alice'
✅ Creating User
User ID: USR-00000000-0000-0000-0000-000000000000
Name: Alice
Display Name: Not Set
Image URL: Not Set
Time to Live: Not Set
Channels:
None Set
ユーザーIDは、ログインや通話開始など、SDKによるタスクの実行に使用されます。
ユーザーJWTの生成
JWT は、Client SDK でユーザーを認証するために使用されます。
アリスのJWTを生成するには、以下のコマンドを実行してください(あなたの情報に置き換えてください):
# A command with parameters
vonage jwt create `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key `
--sub='Alice' `
--acl='{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}'
# Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ
REM A command with parameters
vonage jwt create ^
--app-id='00000000-0000-0000-0000-000000000000' ^
--private-key=./private.key ^
--sub='Alice' ^
--acl="{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}"
REM Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ
上記のコマンドは、JWTの有効期限を24時間にデフォルト設定しています。有効期限は
コマンドを使用して --exp の旗を掲げている。
注:本番アプリケーションでは、バックエンドがクライアントからのリクエストに応じてJWTを生成するエンドポイントを公開することが期待されます。 を生成するエンドポイントを公開することが期待されます。