Como gerar um link de reunião Zoom OAuth servidor a servidor com Python
Aprenda como criar um link de reunião Zoom seguro usando Python para comunicação entre servidores com autenticação OAuth.
Quer você tenha integrado reuniões do Zoom em seu aplicativo Python ou apenas esteja planejando fazê-lo, o Zoom diz que está obsoletando os aplicativos JWT em 1º de setembro de 2023. Você terá que mudar para a opção OAuth ou OAuth de servidor para servidor para evitar o serviço tempo de inatividade.
A opção OAuth exige que seus usuários autentiquem seu site por meio de suas contas Zoom. Mas se você estiver apenas gerando links de reuniões do Zoom sem necessariamente solicitar permissão dos usuários, a opção OAuth servidor a servidor é a escolha ideal.
Então, como você pode conseguir isso com Python?
Crie um aplicativo Zoom Server-to-Server OAuth
Para começar, acesse o Zoom Marketplace para criar um novo aplicativo:
-
Percorra a lista de aplicativos e localize o banner Server-to-Server OAuth. Em seguida, clique no botão Criar.
Insira um nome para seu aplicativo no campo fornecido. Em seguida, clique em Criar; isso redireciona você para outra página.
Copie todas as credenciais do aplicativo, incluindo seu ID da conta, ID do cliente e Segredo do cliente. Clique em Continuar quando terminar. Você pode querer colá-los em seu arquivo de variável de ambiente para mascará-los.
No menu a seguir, preencha os campos Informações básicas com as informações apropriadas e clique no botão Continuar.
Clique em Continuar na página seguinte.
-
Em seguida, clique em Adicionar escopos e adicione os seguintes escopos; Obtenha o URI SIP codificado de uma reunião e visualize e gerencie todas as reuniões de usuários.
Clique em Continuar. Por fim, clique em Ativar seu aplicativo para começar a interagir com a API Zoom por meio de seu aplicativo OAuth de servidor para servidor.
Código Python para gerar link de zoom
Depois de concluir as etapas anteriores, você pode gerar links de reuniões em qualquer lugar usando a API Zoom. Abaixo está o código completo para fazer isso.
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 primeiro envia uma solicitação ao URL do token do Zoom para um token de autorização. Passando isso através dos cabeçalhos para a API do Zoom, ele retorna uma resposta contendo os detalhes da reunião especificados na carga útil. A reunião start_time enviada com a carga deve estar no formato ISO 8601. Formatamos isso usando a operação de string do Python.
Por exemplo, você pode chamar a função para agendar uma reunião para 23 de agosto de 2023, às 18h24, da seguinte forma:
create_meeting(
"Test Zoom Meeting",
"60",
"2023-08-23",
"18:24",
)
A API retorna um JSON contendo muitas informações, incluindo link da reunião, senha e ID, entre muitos outros detalhes. Você pode imprimir response_data e extrair o que precisa, como feito no código acima.
Por exemplo, a saída da nossa solicitação é assim:
Integre o Zoom Meeting ao seu aplicativo
Embora nossa demonstração não inclua a integração ao seu site ou API, seja construindo com Django, Flask, FastAPI ou qualquer outra estrutura Python, você pode facilmente conectar o código à sua base de código.
E se estiver construindo uma API, você pode convertê-la em um endpoint utilizável por qualquer cliente. Você pode até pegar emprestada essa ideia para um site construído em outras linguagens além do Python. Por exemplo, as etapas para criar um aplicativo OAuth de servidor para servidor são genéricas.