如何从Twilio回调webhook的请求中获取触发的事件类型
解决方案
Twilio Video的回调事件类型存储在POST请求的表单参数中,参数名为StatusCallbackEvent,你可以直接通过你已经解析好的表单参数字典获取对应值。
你现有代码中已经通过ToDictionary(request.Form)把所有表单参数转为了parameters字典,直接读取字典中StatusCallbackEvent的取值即可得到具体触发的事件,示例代码如下:
public static bool IsValidRequest(HttpRequest request) { var _requestValidator = new RequestValidator(AuthToken); var requestUrl = RequestRawUrl(request); var parameters = ToDictionary(request.Form); var signature = request.Headers["X-Twilio-Signature"]; bool isValid = _requestValidator.Validate(requestUrl, parameters, signature); // 校验通过后获取事件类型 if (isValid && parameters.ContainsKey("StatusCallbackEvent")) { string eventType = parameters["StatusCallbackEvent"]; // 此处即可对eventType做判断,处理room-created/room-ended等不同逻辑 } return isValid; }
补充说明
- 所有和回调事件关联的业务字段都存储在同一个表单参数集合中,比如房间ID
RoomSid、参会者IDParticipantSid等,都可以通过相同的方式从parameters字典中读取。 - 需确认你在Twilio控制台配置Video Webhook时,已经勾选了所有需要接收的事件类型,未勾选的事件不会触发回调推送。
内容的提问来源于stack exchange,提问作者Thomas Carlton
相关产品推荐
相关产品推荐

