[PYTHON] Ich habe eine vorläufige Umfrage der API durchgeführt, um Zoom-Meeting-Ein- / Ausstiegs-Webhooks in Lambda zu erhalten (1).

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.

Zoom-API-Authentifizierung

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.

Bereiten Sie die URL des Webhooks vor

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.

Überprüfen der API mit Postman

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

Ich habe eine vorläufige Umfrage der API durchgeführt, um Zoom-Meeting-Ein- / Ausstiegs-Webhooks in Lambda zu erhalten (1).
Ich habe ein wenig über die Klasse recherchiert
Ich habe mit Lambda eine App erstellt, die LINE über die Qiita-API über "Likes" informiert.
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe viel recherchiert, wie Python ausgeführt wird
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
zoom Ich habe versucht, den Grad der Aufregung der Geschichte auf der Konferenz zu quantifizieren
Ich habe einen Korpusleser geschrieben, der die Ergebnisse der MeCab-Analyse liest
Ich habe versucht, die Wartezeit der Ausführungswarteschlange eines Prozesses unter Linux zu messen
Erstellt einen Slack-Bot, der AWS Lambda über das Ablaufdatum eines SSL-Zertifikats bestätigt und benachrichtigt