Lær hvordan du oppretter en sikker Zoom-møtekobling ved hjelp av Python for server-til-server-kommunikasjon med OAuth-autentisering.
Enten du har integrert Zoom-møter i Python-appen eller bare planlegger å gjøre det, sier Zoom at den avvikler JWT-apper 1. september 2023. Du må bytte til alternativet OAuth eller server-til-server OAuth for å unngå nedetid.
OAuth-alternativet krever at brukerne autentiserer nettstedet ditt via deres Zoom-konto. Men hvis du bare genererer Zoom-møtekoblinger uten å nødvendigvis be brukernes tillatelse, er server-til-server OAuth-alternativet ditt ideelle valg.
Så hvordan kan du oppnå dette med Python?
Opprett en Zoom Server-to-Server OAuth-app
For å begynne, gå over til Zoom Marketplace for å bygge en ny app:
- Bla gjennom listen over apper og finn Server-til-tjener OAuth banner. Klikk deretter på Skape knapp.
- Skriv inn et navn for appen din i det angitte feltet. Klikk deretter Skape; dette omdirigerer deg til en annen side.
- Kopier all applegitimasjonen, inkludert din Konto-ID, klient-ID, og Klienthemmelighet. Klikk Fortsette en gang gjort. Du vil kanskje lime disse inn i din miljøvariabel fil å maskere dem.
- På følgende meny fyller du ut Grunnleggende informasjon feltene med riktig informasjon og klikk på Fortsette knapp.
- Klikk Fortsette på neste side.
- Klikk deretter Legg til omfang og legg til følgende omfang; Få et møtes kodede SIP URI og Se og administrer alle brukermøter.
- Klikk Fortsette. Klikk til slutt Aktiver appen din for å begynne å samhandle med Zoom API via server-til-server OAuth-appen.
Når du er ferdig med de forrige trinnene, kan du generere møtelenker mens du er på farten ved hjelp av Zoom API. Nedenfor er den komplette koden for å gjøre det.
import forespørsler
# erstatt med klient-ID
client_id = "" # erstatt med konto-ID
account_id = "" # erstatt med klienthemmeligheten din
client_secret = "" auth_token_url = " https://zoom.us/oauth/token"
api_base_url = " https://api.zoom.us/v2"# lag Zoom-lenkefunksjonen
defopprette_møte(emne, varighet, startdato, starttid):
data = {
"grant_type": "account_credentials",
"account_id": konto-id,
"klient_hemmelig": klient_hemmelighet
}
respons = requests.post (auth_token_url,
auth=(client_id, client_secret),
data=data)
hvis response.status_code!=200:
skrive ut("Kan ikke få tilgangstoken")
response_data = respons.json()
access_token = respons_data["access_token"]overskrifter = {
"Autorisasjon": f "Bærer {access_token}",
"Innholdstype": "applikasjon/json"
}
nyttelast = {
"emne": emne,
"varighet": varighet,
'starttid': f'{startdato}T10:{starttid}',
"type": 2
}
resp = requests.post(f"{api_base_url}/users/me/meetings",
headers=headers,
json=nyttelast)
hvis resp.status_code!=201:
skrive ut("Kan ikke generere møtelink")
response_data = resp.json()
innhold = {
"meeting_url": respons_data["join_url"],
"passord": respons_data["passord"],
"møtetid": respons_data["starttid"],
"hensikt": respons_data["emne"],
"varighet": respons_data["varighet"],
"beskjed": "Suksess",
"status":1
}
print (innhold)
Koden sender først en forespørsel til Zooms token-URL for et autorisasjonstoken. Ved å sende dette ned via overskriftene til Zooms API, returnerer det et svar som inneholder møtedetaljene spesifisert i nyttelasten. Møtet starttid som sendes med nyttelasten må være i ISO 8601-format. Vi har formatert dette ved å bruke Pythons strengoperasjon.
Du kan for eksempel ringe funksjonen for å planlegge et møte til 23. august 2023 kl. 18:24 på følgende måte:
opprette_møte(
"Test Zoom Meeting",
"60",
"2023-08-23",
"18:24",
)
API-en returnerer en JSON som inneholder mye informasjon, inkludert møtelenke, passord og ID, blant mange andre detaljer. Du kan skrive ut response_data og trekk ut det du trenger, som gjort i koden ovenfor.
For eksempel ser forespørselsutgangen vår slik ut:
Integrer Zoom Meeting i appen din
Selv om demonstrasjonen vår ikke inkluderer integrering i nettstedet ditt eller API-en din, uansett om du bygger med Django, Flask, FastAPI eller et hvilket som helst annet Python-rammeverk, kan du enkelt koble koden til kodebasen din.
Og hvis du bygger et API, kan du konvertere det til et endepunkt som kan brukes av enhver klient. Du kan til og med låne denne ideen for et nettsted bygget med andre språk enn Python. For eksempel er trinnene for å lage en server-til-server OAuth-app generiske.