J'essaie de créer un service qui utilise l'API de Zoom lors du hackathon de l'entreprise, alors j'ai fait une enquête préliminaire.
Les jetons JWT ou OAuth 2.0 sont disponibles en tant que jetons possibles. Le token JWT prêt à l'emploi utilisé était celui affiché à l'écran.
L'utilisateur zoom enregistré dans le domaine co.jp de l'entreprise est sous le compte de l'entreprise et n'a pas pu obtenir le jeton JWT sur place (je n'avais pas l'autorisation de créer l'application), j'ai donc utilisé un Gmail personnel distinct. Vous avez créé un utilisateur, créé une application et obtenu un jeton JWT.
J'ai choisi ** Chalice **, qui est un framework qui vous permet de créer facilement des API Gateway + Lambda API. C'est très simple car vous pouvez écrire une fonction et déployer diverses choses avec une seule commande de déploiement sans être conscient des paramètres chronophages liés aux autorisations et aux paramètres de la passerelle API.
Chalice https://github.com/aws/chalice
Une fois déployée, l'URL de l'API REST sera affichée, donc enregistrez-la dans ʻEvent notification endpoint URLà partir de l'écran de gestion de l'application de zoom. Comme il s'agit de l'URL de l'API REST + le nom de la fonction à enregistrer, cela ressemble à ceci.
https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/api/webhook`
Étant donné que le zoom comporte un grand nombre d'événements de webhook, cochez les événements que vous souhaitez recevoir.
L'URL du webhook est-elle active? Je vais le vérifier rapidement. La méthode GET a renvoyé une réponse immédiatement, mais le webhook est accessible par la méthode POST. Il est nécessaire de spécifier de recevoir la méthode POST côté Calice.
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))
#Déployer
chalice deploy --profile xxxxx
#Attendez le journal
chalice logs -f --profile xxxxx
En attendant le journal comme celui-ci, faisons une demande avec Postman. En environ 2-3 secondes, le journal est arrivé au terminal.
À ce stade, j'ai également constaté que si je démarre / termine une réunion de zoom, je peux recevoir le webhook réel et générer le journal. Comme avec le facteur, le journal coulera dans environ 2-3 secondes, donc je pense qu'il est notifié avec presque aucun retard.
La prochaine fois, j'essaierai d'exécuter l'API Zoom en fonction des informations reçues.