フォーラム

Ask a Question
Back to All

Outgoing Webhook 会議履歴のリクエスト処理方法(実装)について

チュートリアルに倣って、app/main.py を以下のように実装しています。

import logging

from aws_lambda_powertools import Logger
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import PlainTextResponse
from mangum import Mangum

from app.schema import OutgoingWebhookPayload

logger = Logger(service="mangum")
logger.setLevel(logging.INFO)

app = FastAPI(docs_url=None, redoc_url=None, openapi_url=None)
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


@app.get("/hello")
def read_root():
    return {"Hello": "World"}


@app.post("/outgoing-webhook")
def outgoing_webhook(data: OutgoingWebhookPayload):
    # DEBUG: Input Data Check.
    logger.info(data)

    if data.challenge:
        # ヘッダーを {'Content-Type':'text/plain'} とした 200 レスポンスで 'hex_token' 値を返す
        return PlainTextResponse(data.challenge, status_code=200)

    _video = data.video
    logger.info(f"[id]: {_video.id}")
    logger.info(f"[title]: {_video.title}")
    logger.info(f"[platform]: {_video.platform}")
    logger.info(f"[starts_at]: {_video.starts_at}")
    logger.info(f"[ends_at]: {_video.ends_at}")
    logger.info(f"[host]: {_video.host.user_name} ({_video.host.login_id})")
    logger.info(f"[analysis](overlap_count): {_video.analysis.overlap_count}")
    logger.info(f"[analysis](silence_count): {_video.analysis.silence_count}")
    for participant in _video.participants:
        logger.info(
            f"[participant]: {participant.display_name} ({participant.login_id})"
        )
    logger.info(f"[speech_recognition](raw): {_video.speech_recognition.raw}")
    logger.info(f"[speech_recognition](summary): {_video.speech_recognition.summary}")

    return {"Outgoing Webhook": "Success"}


handler = Mangum(app, "off")

これらを含めて Lambda へデプロイし、Postman, curl コマンド等で Challenge Response 応答やテスト用のダミーイベント JSON を使用してコードが正常に実行されることは確認済みです。

ただ、MiiTel 側から Webhook を Call された場合、CloudWatch に Challenge Response のログは残っていますが、それ以降の例えば上記でいえば video の内容がログに出力されません。
outgoing-webhook の Call のされ方?(シーケンス)等を教えて下さい。

もしくは app/schema.py に問題がありそうとのことであれば別途提示いたします。
アドバイス頂けると助かります。