Ich versuche beim Hackathon des Unternehmens, einen Dienst zu erstellen, der die API von Zoom verwendet. Daher habe ich eine vorläufige Umfrage durchgeführt.
JWT-Token oder OAuth 2.0 sind als mögliche verfügbar. Das verwendete gebrauchsfertige JWT-Token wurde auf dem Bildschirm angezeigt.
Der in der co.jp-Domain des Unternehmens registrierte Zoom-Benutzer befindet sich unter dem Unternehmenskonto und konnte das JWT-Token nicht sofort abrufen (ich war nicht berechtigt, die App zu erstellen). Daher habe ich ein separates persönliches Google Mail-Konto verwendet. Sie haben einen Benutzer erstellt, eine App erstellt und ein JWT-Token erhalten.
Ich habe mich für ** Chalice ** entschieden, ein Framework, mit dem Sie auf einfache Weise API Gateway + Lambda-APIs erstellen können. Dies ist sehr einfach, da Sie mit einem einzigen Bereitstellungsbefehl eine Funktion schreiben und verschiedene Dinge bereitstellen können, ohne die zeitaufwändigen Einstellungen für Berechtigungen und API-Gateway-Einstellungen zu kennen.
Chalice https://github.com/aws/chalice
Nach der Bereitstellung wird die REST-API-URL angezeigt. Registrieren Sie sich daher im Bildschirm zur Verwaltung der Zoom-App für die Endpunkt-URL für Ereignisbenachrichtigungen.
Da es sich um die zu registrierende REST-API-URL + Funktionsname handelt, sieht es so aus.
https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/api/webhook
zoom hat so viele Webhook-Ereignisse, überprüfen Sie also die Ereignisse, die Sie empfangen möchten.
Ist die Webhook-URL aktiv? Ich werde es schnell überprüfen. Die GET-Methode gab sofort eine Antwort zurück, aber auf den Webhook wird von der POST-Methode zugegriffen. Es muss angegeben werden, ob die POST-Methode auf der Kelchseite empfangen werden soll.
app.py
@app.route('/webhook', methods=['POST'])
def webhook():
print('received event:')
request = app.current_request
app.log.debug(json.dumps(request.to_dict()));
app.log.debug(json.dumps(request.json_body))
#Bereitstellen
chalice deploy --profile xxxxx
#Warten Sie auf das Protokoll
chalice logs -f --profile xxxxx
Warten Sie auf das Protokoll wie folgt und stellen Sie eine Anfrage an Postman. In ca. 2-3 Sekunden kam das Protokoll zum Terminal.
Zu diesem Zeitpunkt stellte ich außerdem fest, dass ich beim Starten / Beenden eines Zoom-Meetings den eigentlichen Webhook empfangen und das Protokoll ausgeben kann. Wie beim Postboten wird das Protokoll in ca. 2-3 Sekunden fließen, daher denke ich, dass es fast ohne Verzögerung benachrichtigt wird.
Das nächste Mal werde ich versuchen, die Zoom-API basierend auf den empfangenen Informationen auszuführen.
Recommended Posts