如何使用Twilio Studio搭建多个基于MS Bot Framework的WhatsApp机器人
核心功能对齐前提
@botbuildercommunity/adapter-twilio-whatsapp的核心作用是完成Twilio WhatsApp消息和Microsoft Bot Framework活动格式的双向转换,配合Bot Framework的通道鉴权规则实现消息收发,这套逻辑完全可以在Twilio Studio中通过节点编排复刻,不需要依赖第三方适配器。
Twilio Studio 具体配置步骤
入站消息路由与参数提取
- 配置Studio流程的触发条件为「收到入站WhatsApp消息」,在流程入口提取所有Twilio推送的原始请求参数为全局流程变量,必提字段包括:
From(用户WhatsApp号码)、To(平台绑定的Twilio接入号码)、Body(用户发送的文本内容)、MessageSid(Twilio消息唯一标识)、ProfileName(用户WhatsApp昵称) - 多机器人适配逻辑:基于提取到的
To(平台侧Twilio号码)做匹配映射,为每个绑定的Twilio号码关联对应机器人的两个配置项:机器人的/api/messages公开端点地址、机器人对应的Azure Bot鉴权Token,避免多机器人场景下消息串线
向Bot Framework发起请求的Body与参数配置
- 选择
Send HTTP Request节点,请求方法设为POST,请求地址填上一步匹配到的对应机器人端点 - 请求头配置:
- 固定头:
Content-Type: application/json - 鉴权头:
Authorization: Bearer <匹配到的对应机器人的Token值>
- 固定头:
- 请求Body严格对照之前用Webhook站点抓取到的、适配器实际发送给Bot Framework的报文结构填写,核心必填字段对齐如下:
{ "type": "message", "text": "提取到的入站消息Body内容", "channelId": "whatsapp", "from": { "id": "提取到的入站用户号码From", "name": "提取到的用户ProfileName" }, "recipient": { "id": "提取到的平台接入号码To" }, "conversation": { "id": "拼接的会话唯一标识,格式为 平台号码:用户号码,保证会话上下文连续" }, "channelData": { "Twilio推送的原始全量入站参数,直接透传即可,不要做字段裁剪 } }
响应回传配置
- HTTP请求节点收到Bot Framework返回的成功响应后,从响应体中提取机器人生成的回复文本、目标收件人字段
- 连接
Send WhatsApp Message节点,将提取到的回复文本填入消息内容项,收件人选择之前存的用户From号码,完成消息回发给用户
配置校验要点
- 逐字段对照抓取到的适配器原始请求报文,补全所有缺失的字段,不要自行删减
channelData里的Twilio原始参数,避免被Bot Framework的校验逻辑拦截 - 多机器人场景下,所有路由、Token、端点的匹配要在请求发起到Bot Framework之前完成,不要到后续节点才临时匹配对应配置
- 测试时优先走单机器人链路打通收发,再补充多机器人的路由规则,定位问题时直接在Studio节点的测试面板查看实际发送的报文和抓取的报文做比对即可
内容的提问来源于stack exchange,提问作者gourav mishra
相关产品推荐
相关产品推荐

