アプリケーション、ユーザー、トークンの作成

Client SDKを使用するには、始める前に3つの設定が必要です:

  • Vonageアプリケーション - アプリケーションには、構築するアプリのコンフィギュレーションが含まれています。 アプリケーションを構築する。
  • ユーザー - Vonage アプリケーションに関連するユーザー。以下のことが期待されます。 ユーザは独自の認証システムと一対一にマッピングされます。
  • JSONウェブトークン、JWT - Client SDKは認証にJWTを使用します。ユーザーがログインして SDKの機能を使用するには、ユーザーごとにJWTを提供する必要があります。JWTには、Vonage プラットフォームがリクエストを認証するために必要なすべての情報、および関連する Applications、Users、permissions などの情報が含まれています。 パーミッションなどの情報が含まれています。

これらはすべて バックエンドによって作成される.すぐにSDKを使い始めたい場合は を使用してクライアントSDKで使用するバックエンドアプリケーションをデプロイすることもできます。 Client SDK サンプルサーバーテンプレート. そうでない場合は、このチュートリアルで Vonage CLI.

前提条件

以下を確認してください:

Vonageアプリケーションの作成

Vonageアプリケーションを作成する必要があります。この例では、In-App Voiceユースケースを処理できるアプリケーションを作成します。

  1. まだプロジェクト・ディレクトリを作成していない場合は、まずプロジェクト・ディレクトリを作成する。
  2. 今作成したプロジェクト・ディレクトリに移動する。
  3. 以下のコマンドを使用して、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 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

その後、アプリケーションが作成される。秘密鍵ファイル 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

ユーザー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

上記のコマンドは、JWTの有効期限を24時間にデフォルト設定しています。有効期限は コマンドを使用して --exp の旗を掲げている。

:本番アプリケーションでは、バックエンドがクライアントからのリクエストに応じてJWTを生成するエンドポイントを公開することが期待されます。 を生成するエンドポイントを公開することが期待されます。

詳細情報