Búsqueda de sitios web

Cómo generar un enlace de reunión OAuth Zoom de servidor a servidor con Python


Aprenda a crear un enlace de reunión de Zoom seguro utilizando Python para la comunicación de servidor a servidor con autenticación OAuth.

Ya sea que haya integrado reuniones de Zoom en su aplicación Python o simplemente esté planeando hacerlo, Zoom dice que dejará de usar las aplicaciones JWT el 1 de septiembre de 2023. Tendrá que cambiar a la opción OAuth o OAuth de servidor a servidor para evitar el servicio. falta del tiempo.

La opción OAuth requiere que sus usuarios autentiquen su sitio web a través de su cuenta de Zoom. Pero si solo genera enlaces de reuniones de Zoom sin necesariamente solicitar el permiso de los usuarios, la opción OAuth de servidor a servidor es su opción ideal.

Entonces, ¿cómo puedes lograr esto con Python?

Cree una aplicación OAuth de servidor a servidor de Zoom

Para comenzar, dirígete a Zoom Marketplace para crear una nueva aplicación:

  1. Desplácese por la lista de aplicaciones y busque el banner OAuth de servidor a servidor. Luego, haga clic en el botón Crear.

  2. Ingrese un nombre para su aplicación en el campo provisto. Luego haga clic en Crear; esto te redirige a otra página.

  3. Copie todas las credenciales de la aplicación, incluido su ID de cuenta, ID de cliente y Secreto de cliente. Haga clic en Continuar una vez hecho. Es posible que desee pegarlos en su archivo de variables de entorno para enmascararlos.

  4. En el siguiente menú, complete los campos de Información básica con la información adecuada y haga clic en el botón Continuar.

  5. Haga clic en Continuar en la página siguiente.

  6. A continuación, haga clic en Agregar ámbitos y agregue los siguientes ámbitos; Obtenga el URI SIP codificado de una reunión y Vea y administre todas las reuniones de usuarios.

  7. Haga clic en Continuar. Finalmente, haga clic en Activar su aplicación para comenzar a interactuar con la API de Zoom a través de su aplicación OAuth de servidor a servidor.

Código Python para generar enlace de zoom

Una vez que haya terminado con los pasos anteriores, puede generar enlaces de reuniones sobre la marcha utilizando la API de Zoom. A continuación se muestra el código completo para hacerlo.

import requests
# replace with your client ID
client_id = "<Your client ID>" 
# replace with your account ID
account_id = "<Your account ID>" 
# replace with your client secret
client_secret = "<Your client secret>" 
auth_token_url = "https://zoom.us/oauth/token"
api_base_url = "https://api.zoom.us/v2"
# create the Zoom link function
def create_meeting(topic, duration, start_date, start_time):
        data = {
        "grant_type": "account_credentials",
        "account_id": account_id,
        "client_secret": client_secret
        }
        response = requests.post(auth_token_url, 
                                 auth=(client_id, client_secret), 
                                 data=data)
        
        if response.status_code!=200:
            print("Unable to get access token")
        response_data = response.json()
        access_token = response_data["access_token"]
        headers = {
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json"
        }
        payload = {
            "topic": topic,
            "duration": duration,
            'start_time': f'{start_date}T10:{start_time}',
            "type": 2
        }
        resp = requests.post(f"{api_base_url}/users/me/meetings", 
                             headers=headers, 
                             json=payload)
        
        if resp.status_code!=201:
            print("Unable to generate meeting link")
        response_data = resp.json()
        
        content = {
                    "meeting_url": response_data["join_url"], 
                    "password": response_data["password"],
                    "meetingTime": response_data["start_time"],
                    "purpose": response_data["topic"],
                    "duration": response_data["duration"],
                    "message": "Success",
                    "status":1
        }
        print(content)

El código primero envía una solicitud a la URL del token de Zoom para obtener un token de autorización. Al pasar esto a través de los encabezados a la API de Zoom, devuelve una respuesta que contiene los detalles de la reunión especificados en la carga útil. La reunión start_time enviada con la carga útil debe estar en formato ISO 8601. Hemos formateado esto usando la operación de cadena de Python.

Por ejemplo, puede llamar a la función para programar una reunión para el 23 de agosto de 2023 a las 6:24 p.m. de la siguiente manera:

create_meeting(
      "Test Zoom Meeting",
      "60",
      "2023-08-23",
      "18:24",
      )

La API devuelve un JSON que contiene mucha información, incluido el enlace de la reunión, la contraseña y el ID, entre muchos otros detalles. Puede imprimir response_data y extraer lo que necesita, como se hace en el código anterior.

Por ejemplo, el resultado de nuestra solicitud se ve así:

Integre Zoom Meeting en su aplicación

Aunque nuestra demostración no incluye la integración en su sitio web o API, ya sea compilando con Django, Flask, FastAPI o cualquier otro marco de Python, puede conectar fácilmente el código a su base de código.

Y si crea una API, puede convertirla en un punto final que pueda utilizar cualquier cliente. Incluso puedes tomar prestada esta idea para un sitio web creado con otros lenguajes además de Python. Por ejemplo, los pasos para crear una aplicación OAuth de servidor a servidor son genéricos.

Artículos relacionados: