如何从Python Flask应用向集成Dialogflow的Twilio发送媒体资源?
Dialogflow集成Twilio后返回图片消息的实现方法
- 实现逻辑:Dialogflow对接第三方渠道时,仅默认处理通用文本消息,若要发送渠道专属的媒体消息,需要在fulfillment返回结果中追加对应渠道的自定义payload字段,Twilio的媒体链接需放在
twilio专属的payload节点内。 - Python侧Fulfillment服务返回结构示例(以Flask为例):
from flask import Flask, jsonify app = Flask(__name__) @app.route('/webhook', methods=['POST']) def dialogflow_webhook(): # 业务逻辑处理部分 response = { "fulfillmentMessages": [ # 可选:附带的文本说明 { "text": { "text": ["以下是你请求的资源:"] } }, # Twilio专属媒体消息配置 { "payload": { "twilio": { "mediaUrl": ["https://公网可访问的图片直链地址.png"] } }, "platform": "TWILIO" } ] } return jsonify(response)
- 注意事项:
- 填入
mediaUrl的图片链接必须为公网可直接访问的HTTPS直链,不可设置访问权限、跳转逻辑,Twilio会主动拉取链接内容发送给用户 - 单条消息最多可填入10个媒体链接,单文件大小不可超过5MB,支持JPG、PNG、GIF等常见图片格式
- 若使用Dialogflow CX,只需将上述payload结构嵌套在对应路由fulfillment.messages的
payload节点下即可,无需修改核心结构
- 填入
内容的提问来源于stack exchange,提问作者imim
相关产品推荐
相关产品推荐

