Vonage Video-Übergangsleitfaden für Python

Der Übergang von Opentok-Python-SDK zu vonage-python-sdk

Einführung

Zweck

Das Ziel dieses Dokuments ist es, einen Ausgangspunkt für den Übergang vom OpenTok Python Server SDK zum Vonage Python Server SDK zu bieten. Es gibt ein spezifischerer und detaillierterer Migrationsleitfaden ist unter diesem Link verfügbar.

Umfang

Dieses Dokument geht davon aus, dass Sie mindestens die Version 3.9.0 oder später von der OpenTok Python SDK.

Die Video API wird im Vonage Python SDK vollständig unterstützt. Sie sollten die neueste Vollversion des SDKs verwenden, die Sie unter GitHub oder PyPI.

Annahmen

Dieser Leitfaden richtet sich an einen professionellen Softwareentwickler. Es werden zumindest grundlegende Kenntnisse in Python, gängigen Python-Entwicklerwerkzeugen, Build-Systemen und Git (oder einem anderen Versionskontrollsystem) vorausgesetzt.

Sie sollten mit dem Lesen und Schreiben von Python-Code, der Verwaltung von Projektabhängigkeiten und der Bereitstellung und Ausführung eines Python-Projekts vertraut sein. Es wird empfohlen, eine virtuelle Python-Umgebung zu verwenden.

Eine Einführung in die Sprache Python und die dazugehörigen Werkzeuge würde den Rahmen dieses Dokuments bei weitem sprengen.

Ressourcen

Die folgenden Links sind nützlich für weiterführende Lektüre zu diesem Dokument und als Referenz für alles, was nicht in diesem Dokument behandelt wird:

Vonage

TokBox

Planung Ihrer Migration

Bevor Sie von OpenTok auf Vonage Video umsteigen, sollten Sie den Umfang der Aufgabe bedenken, um realistische Erwartungen zu setzen.

Bewertung der Auswirkungen

Die erste Frage, die Sie sich stellen sollten, lautet: Wie viel vom Code Ihrer Anwendung hängt vom OpenTok SDK ab?

Erstellen Sie eine Liste aller Dateien, in denen das SDK direkt verwendet wird. Das heißt, jede .py Datei, die eine import opentok oder from opentok import... Anweisung. Sie können die Dateien in Ihrem Projekt mit einer IDE oder einem Befehlszeilentool durchsuchen, um die betroffenen Dateien zu identifizieren.

Zeitleiste

Berücksichtigen Sie die für die Umstellung erforderliche Zeit. Dies hängt von Ihrer Erfahrung mit dem Projekt und seinen Auswirkungen sowie von den Tests ab. Es ist wichtig, eine gute Test-Suite zu haben, um die Gleichwertigkeit von OpenTok und Vonage Video SDKs zu verifizieren. Die Zeit, die für die Umstellung benötigt wird, ist in etwa proportional zu der Anzahl der Stellen, an denen das OpenTok SDK in Ihrem Code verwendet wird, sowie zu der Vielfalt der verwendeten Funktionen. Einige API-Aufrufe werden einfacher zu ersetzen sein als andere.

Versionierung

OpenTok und Vonage Video sind zwei unterschiedliche Produkte - dies macht eine schrittweise Migration unmöglich.

Sie sollten für den Übergang einen neuen Zweig in Ihrem Versionskontrollsystem anlegen, damit Sie schrittweise und häufig Änderungen vornehmen können, ohne das bestehende Projekt zu zerstören. Sie können auch die Tests des bestehenden Projekts als Orakel für die Korrektheit verwenden, wenn sie umfassend sind. Idealerweise sollten Sie den Übergangszweig erst dann in den Hauptzweig einbinden, wenn Sie die Umstellung abgeschlossen haben.

Wichtige Änderungen und Überlegungen

Paket-Update

Als erstes müssen Sie das Vonage Python SDK in Ihrem Projekt installieren oder aktualisieren. Dies können Sie tun, indem Sie pip install -U vonage.

Für eine schrittweise Migration können Sie sowohl OpenTok- als auch Vonage-Abhängigkeiten in Ihr Projekt einbinden. Wir empfehlen jedoch dringend, dies nur zu Testzwecken zu tun und nicht in die Produktion zu übernehmen.

Änderungen bei der Authentifizierung

Die Authentifizierung wird sowohl bei OpenTok als auch bei Vonage Python Server SDKs für Sie übernommen, so dass Sie Ihre Account-Anmeldedaten nur einmal bei der Initialisierung angeben müssen. Der Unterschied besteht darin, dass OpenTok einen API-Schlüssel und ein Geheimnis benötigt, während Sie für das Vonage Python SDK eine Anwendungs-ID und ihren privaten Schlüssel angeben müssen. Während sowohl Vonage als auch OpenTok eine Token-basierte Authentifizierung verwenden, sind die Token von Vonage JWTs während OpenTok ein eigenes Format verwendet. Sie können zwar einen API-Schlüssel und ein Geheimnis für die vonage.Client Objekt wird, genau wie bei OpenTok, für andere Vonage APIs verwendet, nicht für Video. Daher müssen Sie eine bestehende Vonage-Anwendung erstellen oder verwenden.

Sie können eine Anwendung aus dem Menü Vonage Dashboard. Stellen Sie sicher, dass Ihre Anwendung die Videofunktion aktiviert hat. Klicken Sie bei einer bestehenden Anwendung auf "Bearbeiten", um deren Fähigkeiten und Anmeldeinformationen anzuzeigen. Klicken Sie hier auf "Öffentlichen und privaten Schlüssel generieren". Dies sollte nur einmal durchgeführt werden, da sich die Anmeldeinformationen jedes Mal ändern und somit das bestehende Schlüsselpaar zerstört wird. Wenn Sie auf diese Schaltfläche klicken, wird ein Download Ihres privaten Schlüssels ausgelöst. Sie sollten diese Datei zu Testzwecken an einem sicheren Ort ablegen. GEBEN SIE NIEMALS IHREN PRIVATEN SCHLÜSSEL WEITER ODER VERÖFFENTLICHEN SIE IHN!

Der private Schlüssel ist quasi das "Passwort" für Ihre Anwendung und sollte daher sorgfältig behandelt werden. Es wird empfohlen, den privaten Schlüssel in einer sicheren Datei zu speichern. Verwenden Sie ein Paket wie dotenv zur Erstellung einer .env Datei, dann speichern Sie den Pfad zu Ihrer privaten Schlüsseldatei als Umgebungsvariable, so dass Sie beim Einrichten des Clients darauf verweisen können, indem Sie die Variable wie folgt aufrufen VONAGE_PRIVATE_KEY_PATH. Dasselbe gilt für Ihre Anwendungs-ID (die Sie auf dem Dashboard oder in der URL finden, wenn Sie sie bearbeiten).

Weitere Hinweise zum Einrichten einer Anwendung, siehe die Anleitung "Erste Schritte.

Verwendung von pydantischen Modellen

Das Vonage Python SDK verwendet Pydantische Datenmodelle für die Aufnahme von Benutzeroptionen und die Rückgabe von API-Daten. Die meisten API-Anforderungen mit der Video API erfordern ein Pydantic-Modell als Eingabe.

Sie können auf Datenmodelle für die Video API zugreifen, z. B. als Argumente für Methoden des Video-Pakets, indem Sie sie aus der Datei vonage_video.models Paket, z.B.

from vonage_video.models import SessionOptions

session_options = SessionOptions(...)

vonage_client.video.create_session(session_options)

Verwendung

Instanziierung eines Clients

Siehe das Python SDK README für Anweisungen zur Verwendung dieses SDK.

Ersetzen Sie Verweise auf opentok.Client und opentok.OpenTok mit dem Video Klasse, die über vonage.Vonage.video.

Stattdessen wird mit OpenTok:

client = opentok.Client(api_key, api_secret)

Gehen Sie wie folgt vor:

from vonage import Auth, Vonage

client = Vonage(Auth(
		application_id='VONAGE_APPLICATION_ID',
		private_key='VONAGE_PRIVATE_KEY_PATH',
	)
)

Sobald Sie Zugang zu einem vonage.Vonage Instanz, können Sie die Video API. Zum Aufrufen von Methoden, die sich auf die Video API beziehen, verwenden Sie diese Syntax:

vonage.Vonage.video.video_api_method(...)

Ausführlichere Anweisungen zur Verwendung finden Sie im die Python Server SDK Videoanleitung.

Methodenänderungen zwischen OpenTok und Vonage SDKs

Es gibt einige Änderungen bei den Methoden zwischen der OpenTok SDK und die Video API-Implementierung in der Vonage SDKs.

  • Alle Positionsparameter in Methodensignaturen in opentok wurden durch Schlüssel-Wert-Parameter in der vonage Paket.
  • Die Methoden geben die Antwort jetzt als Python-Dictionary zurück.
  • Einige Methoden wurden umbenannt, damit sie klarer sind und/oder ihre Funktion besser wiedergeben. Diese sind im Folgenden aufgeführt:
OpenTok Methode Name Vonage Video Methode Name
opentok.generate_token video.generate_client_token
opentok.add_archive_stream video.add_stream_to_archive
opentok.remove_archive_stream video.remove_stream_from_archive
opentok.set_archive_layout video.change_archive_layout
opentok.add_broadcast_stream video.add_stream_to_broadcast
opentok.remove_broadcast_stream video.remove_stream_from_broadcast
opentok.set_broadcast_layout video.change_broadcast_layout
opentok.set_stream_class_lists video.change_stream_layout
opentok.force_disconnect video.disconnect_client
opentok.mute_all video.mute_all_streams
opentok.disable_force_mute video.disable_mute_all_streams
opentok.dial video.initiate_sip_call
opentok.start_render video.start_experience_composer
opentok.list_renders video.list_experience_composers
opentok.get_render video.get_experience_composer
opentok.stop_render video.stop_experience_composer
opentok.connect_audio_to_websocket video.start_audio_connector

Strategien für die Migration

Inkrementelle Migration

Wir würden eine schrittweise Migration empfehlen, bei der Sie von einem Anwendungsfall zum nächsten wechseln und jedes Mal, wenn Sie einen "stabilen" Zustand erreicht haben, eine Verpflichtung eingehen. Beachten Sie, dass bei diesem Ansatz sowohl OpenTok als auch Vonage Video API vorübergehend nebeneinander existieren müssen.

Bitte beachten Sie, dass während eines solchen inkrementellen Prozesses Ihre Anwendung als Ganzes nicht mehr voll funktionsfähig wäre, da OpenTok und Vonage Video API zwei völlig unterschiedliche Systeme sind.

Sie sollten damit beginnen, einen speziellen "Video Adapter" zu erstellen, der der alle aktuellen Interaktionen mit OpenTok zusammenfasst und dann nach und nach die Verwendung von OpenTok durch die Vonage Video API ersetzt.

Eine andere Möglichkeit wäre, den "Videoadapter" in einen neuen "Vonage Videoadapter" zu duplizieren, der für diese Migration bestimmt ist, und die beiden Adapter dann zusammen zu tauschen. Sehen Sie mehr mit dem Würgefeigen-Muster.

Test-Empfehlungen

Gründliche Tests sind für einen reibungslosen Übergang sowohl während als auch nach der Migration unerlässlich. Dazu gehören nicht nur Unit-Tests, sondern auch Integrations- und Regressionstests. Es lohnt sich auch, Ihren Anwendungsablauf mindestens einmal vor und nach der Migration manuell zu testen, um sicherzustellen, dass Ihre automatisierten Tests das tun, was Sie glauben, dass sie es tun, oder um Probleme aufzuspüren, die die Tests möglicherweise nicht erkannt haben. Sie können sogar die Erstellung von Äquivalenztests in Betracht ziehen.

Die Idee besteht darin, eine Suite zu erstellen, die behauptet, dass die OpenTok und die Vonage Video Version Ihrer Anwendung dasselbe tun. Diese können dann verworfen werden, sobald der Übergang abgeschlossen ist und die OpenTok-Version Ihrer Anwendung entfernt wird.

Fehlersuche & Unterstützung

Das Vonage Python Server SDK ist bestrebt, hilfreiche Ausnahmemeldungen in den Stack Traces bereitzustellen, wenn Sie auf Laufzeitfehler stoßen. Untersuchen Sie diese sorgfältig, um die Ursache zu ermitteln.

Support-Kanäle

Allgemeine Hilfe und Diskussionen zur Umstellung auf Vonage Video finden Sie unter die Seite #video-api Kanal auf unserem Community Slackwo Sie Antworten von Vonage-Mitarbeitern und anderen Benutzern erhalten können. Sie können uns auch über X erreichen @VonageDev.

Der Hauptansprechpartner für alle Probleme mit der Video API selbst ist support@api.vonage.com. Wenn Sie einen Fehler im SDK finden, bitten wir Sie ein Problem mit Schritten zur Reproduktion auf GitHub einreichen.