Contents

Como gerar um link de reunião OAuth Zoom de servidor para servidor com Python

A Zoom anunciou que a partir de 1 de setembro

A utilização da alternativa OAuth requer que os utilizadores autorizem o seu site através da sua conta Zoom. No entanto, se o objetivo principal for gerar links de reunião do Zoom sem solicitar o consentimento do usuário, a seleção OAuth de servidor para servidor apresenta uma solução adequada.

Como é possível realizar essa façanha com Python?

Criar um aplicativo OAuth de servidor para servidor do Zoom

Para começar, acesse o Zoom Marketplace para criar um novo aplicativo:

⭐ Percorra a lista de aplicativos e localize o OAuthbanner de servidor para servidor. Em seguida, clique no botãoCriar. /pt/images/zoom-marketplace.jpg

⭐ Introduza um nome para a sua aplicação no campo fornecido. Em seguida, clique emCriar; isto redirecciona-o para outra página. /pt/images/app-name-modal-popup.jpg

⭐ Copie todas as credenciais da aplicação, incluindo o ID da conta, o ID do cliente e o segredo do cliente. Clique emContinuar quando terminar. Poderá querer colá-las no seu ficheiro de variável de ambiente

para as mascarar. /pt/images/app-credentials-dashboard.jpg

⭐ No menu seguinte, preencha os camposBasic information (Informações básicas) com as informações apropriadas e clique no botãoContinue (Continuar). /pt/images/app-information-dashboard.jpg

⭐ Clique emContinuar na página seguinte. /pt/images/app-feature-dashboard-1.jpg

⭐ Em seguida, clique emAdicionar âmbitose adicione os seguintes âmbitos;Obter o URI SIP codificado de uma reuniãoeVer e gerir todas as reuniões de utilizadores. /pt/images/zoom-scopes-addition-dashboard-1.jpg

⭐ Clique emContinuar. Por fim, clique emAtivar seu aplicativopara começar a interagir com a API do Zoom por meio do seu aplicativo OAuth de servidor para servidor. /pt/images/zoom-activation-page.jpg

Após a conclusão dos processos mencionados acima, é possível criar links de reunião por meio da API do Zoom enquanto estiver em movimento, utilizando o código fornecido abaixo.

 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)
 

O código envia um apelo à URL de token do Zoom para adquirir um token de autenticação e, em seguida, transmite esse token através dos cabeçalhos para a API do Zoom. Em troca, a API fornece uma resposta que inclui os detalhes da reunião agendada, conforme estipulado no payload. É imperativo que a hora de início incluída no payload seja apresentada no formato ISO 8601. Isto foi conseguido através da utilização das capacidades de manipulação de cadeias de caracteres do Python.

Marcar uma reunião para 23 de agosto de 2023, às 18:24, da seguinte forma

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

A resposta da API é composta por um objeto JSON que inclui uma abundância de elementos de dados, como a ligação da reunião, a palavra-passe e o identificador, entre vários outros.É possível exibir o conteúdo do JSON imprimindo ‘response\_data’ e extrair seletivamente as informações necessárias, semelhante ao exemplo fornecido abaixo.

Talvez uma formulação mais refinada da declaração dada pudesse ser: “A saída solicitada exibe o seguinte formato:

/pt/images/code-output-meeting-link.jpg

Integre o Zoom Meeting ao seu aplicativo

Embora essa demonstração não envolva a incorporação da tecnologia em um site ou API, ela é facilmente adaptável para ser integrada a qualquer estrutura de desenvolvimento da Web baseada em Python existente, como Django, Flask, FastAPI ou qualquer outra plataforma semelhante.

Ao desenvolver uma interface de programação de aplicações (API), é possível transformá-la num destino acessível a qualquer cliente. Do mesmo modo, esta abordagem pode ser aplicada a sítios Web construídos com outras linguagens que não Python. De facto, os procedimentos de construção de uma aplicação de autenticação servidor a servidor são universais.