Erstellen Sie Ihre Anwendung, Benutzer und Token
Um das Client SDK nutzen zu können, müssen Sie drei Dinge einrichten, bevor Sie loslegen können:
- Vonage Anwendung - eine Application, die die Konfiguration für die zu erstellende App enthält.
- Benutzer - Benutzer, die mit der Vonage Application verbunden sind. Es wird erwartet, dass die Benutzer eine Eins-zu-Eins-Zuordnung zu Ihrem eigenen Authentifizierungssystem haben.
- JSON-Web-Token, JWTs - Client SDK verwendet JWTs zur Authentifizierung. Damit sich ein Benutzer anmelden und die SDK-Funktionen nutzen kann, müssen Sie ein JWT pro Benutzer bereitstellen. JWTs enthalten alle Informationen, die die Vonage-Plattform zur Authentifizierung von Anfragen benötigt, sowie Informationen wie die zugehörigen Applications, Benutzer und Berechtigungen.
All diese können sein erstellt von Ihrem Backend. Wenn Sie mit dem SDK beginnen und Erfahrungen sammeln möchten, ohne Ihr Backend zu implementieren, zeigt Ihnen dieses Tutorial, wie Sie dies tun können, indem Sie die Vonage CLI.
Voraussetzungen
Vergewissern Sie sich, dass Sie die folgenden Informationen haben:
- Ein Vonage Account - sich einschreiben
- Node.JS und NPM installiert
- Installieren Sie die Vonage CLI.
Auschecken Erste Schritte mit Vonage CLI für weitere Informationen über die Installation und Konfiguration der CLI.
Erstellen einer Vonage-Applikation
Sie müssen nun eine Vonage-Anwendung erstellen. In diesem Beispiel erstellen Sie eine Anwendung, die mit dem In-App Anwendungsfall Sprache.
Erstellen Sie zunächst Ihr Projektverzeichnis, falls Sie dies noch nicht getan haben.
Wechseln Sie in das Projektverzeichnis, das Sie jetzt erstellt haben.
Verwenden Sie den folgenden Befehl, um eine Vonage-Applikation mit Sprach- und WebRTC-Funktionen zu erstellen. Ersetzen Sie die Webhook URLs durch Ihre eigenen. Wenn Ihre Plattform den eingehenden Verkehr, den sie empfangen kann, durch IP-Adressbereiche einschränkt, müssen Sie müssen Sie die Vonage IP-Adressen zu Ihrer Erlaubnis Liste. Die IP-Adressen können programmatisch abgerufen werden, indem Sie eine GET-Anfrage an
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
- Sobald Sie die Anwendung haben, müssen Sie die
voiceundrtcFähigkeiten:
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
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
Die Anwendung wird dann erstellt und verfügt über die erforderlichen Fähigkeiten. Das Erstellen einer Applikation und die Fähigkeiten einer Applikation werden im Detail in der Dokumentation.
Einen Benutzer erstellen
Erstellen Sie einen Benutzer, der sich beim Vonage Client SDK anmeldet und an den SDK-Funktionen teilnimmt: Konversationen, Anrufe und so weiter.
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um einen Benutzer zu erstellen:
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
Die Benutzer-ID wird für die Durchführung von Aufgaben durch das SDK verwendet, z. B. für die Anmeldung, das Starten eines Anrufs und mehr.
Erzeugen eines Benutzer-JWTs
JWTs werden verwendet, um einen Benutzer beim Client SDK zu authentifizieren.
Um ein JWT für Alice zu generieren, führen Sie den folgenden Befehl aus:
# 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
Mit dem obigen Befehl wird der Ablauf des JWT auf einen Tag ab jetzt festgelegt, was die maximale Zeitspanne ist. Sie können den Sie können den Ablauf auf eine kürzere Zeitspanne ändern oder ein JWT für den Benutzer neu generieren, nachdem das aktuelle JWT abgelaufen ist.
ANMERKUNG: In produktiven Anwendungen wird erwartet, dass Ihr Backend einen Endpunkt bereitstellt, der JWT für Ihre Client-Anfrage generiert.