はじめに
以下のzoom公式でアナウンスされたように、2022年10月23日以降に作成されたWebhookには検証が必要になりました。
本記事ではその検証をpythonで行う例を示します。
Webhookの登録までは以下の記事が参考になります。
事前準備
以下のページにあるngrokの実行ファイルをダウンロードする(アカウントがなければSignup for freeから登録)
その後、サイトの手順通りに
zipファイルを解凍し、実行ファイル(ngrok.exe)を取り出す。
環境変数にPATHを通してから任意の場所で実行する、もしくは実行ファイル直下で以下のコマンドを実行。
最後にローカルに作成したサーバに対応したポートを指定して実行。
実装例
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のアプリケーションページから実行してください。
結果
参考
Challenge-response check