1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Zoom Webhook でvalidateを通す方法(Python)

Posted at

はじめに

以下のzoom公式でアナウンスされたように、2022年10月23日以降に作成されたWebhookには検証が必要になりました。

本記事ではその検証をpythonで行う例を示します。

image.png

Webhookの登録までは以下の記事が参考になります。

事前準備

以下のページにあるngrokの実行ファイルをダウンロードする(アカウントがなければSignup for freeから登録)

image.png

その後、サイトの手順通りに
zipファイルを解凍し、実行ファイル(ngrok.exe)を取り出す。

image.png

環境変数にPATHを通してから任意の場所で実行する、もしくは実行ファイル直下で以下のコマンドを実行。
image.png

最後にローカルに作成したサーバに対応したポートを指定して実行。
image.png

実装例

main.py
from flask import Flask, request, jsonify
import os, hmac, hashlib

# Secret Token を使用する
zoom_webhook_secret_token=os.environ["ZOOM_WEBHOOK_SECRET_TOKEN"]

flask_app = Flask(__name__)

@flask_app.route("/webhook", methods=["POST"])
def get_request():
    json = request.get_json()
    if json["event"]=="endpoint.url_validation":
        res={
            "plainToken": json["payload"]["plainToken"],
            "encryptedToken": hmac.new(bytes(zoom_webhook_secret_token, "latin-1"),json["payload"]["plainToken"].encode("utf-8"),hashlib.sha256).hexdigest()
        }
        return jsonify(res), 200

if __name__ == "__main__":
    flask_app.run(host="0.0.0.0", port=5000)

まず必要なライブラリをインストール。

python -m pip install flask

以下を実行

python main.py

次に、別ターミナルで

ngrok http 5000

最後にvalidateボタンをzoomのアプリケーションページから実行してください。

結果

image.png

参考

Challenge-response check

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?