如何配置Dialogflow意图以触发Twilio自动发送短信通知?
如何在Dialogflow中配置意图触发自动发送短信(使用Twilio)
我来帮你搞定这个需求——把Twilio的短信功能和Dialogflow意图绑定,触发指定语句就自动发通知,步骤很清晰:
1. 准备Dialogflow Fulfillment环境
首先确保你在Dialogflow控制台开启了Fulfillment功能:
- 切换到「Fulfillment」标签,选择「Inline Editor」(如果用自己的Webhook服务器也可以,但Inline Editor更方便快速测试)。
- 在Inline Editor的
package.json里添加Twilio依赖,比如在dependencies里加上"twilio": "^4.23.0"(用最新版本就行),然后点击「Deploy」完成依赖安装和部署。
2. 编写Fulfillment触发逻辑
把你的Twilio代码改成Dialogflow能识别的意图处理函数,这样当指定意图被触发时,就会自动执行短信发送逻辑。修改后的代码示例如下:
const functions = require('firebase-functions'); const { WebhookClient } = require('dialogflow-fulfillment'); // Twilio配置信息 const accountSid = 'A**********************'; const authToken = 'f**********************'; const twilio = require('twilio'); const client = new twilio(accountSid, authToken); // 处理短信发送的意图函数 function sendNotificationSMS(agent) { return client.messages.create({ body: 'Hello from me', // 你要发送的短信内容 to: '+1(phone-number)', // 接收短信的目标号码(要带国际区号) from: '+1(phone-number)' // 你的Twilio有效号码(必须是Twilio分配的) }) .then(message => { console.log(`短信发送成功,SID: ${message.sid}`); // 给用户返回确认消息 agent.add('通知短信已经发送出去啦!'); }) .catch(error => { console.error('发送短信失败:', error); agent.add('抱歉,发送短信时出现了问题,请稍后再试~'); }); } // 注册意图与处理函数的映射 exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => { const agent = new WebhookClient({ request, response }); const intentMap = new Map(); // 这里替换成你创建的意图名称,比如「触发通知短信」 intentMap.set('触发通知短信', sendNotificationSMS); agent.handleRequest(intentMap); });
3. 配置触发意图
接下来在Dialogflow里创建并设置触发意图:
- 切换到「Intents」标签,创建一个新意图(比如命名为「触发通知短信」)。
- 在「Training phrases」里添加用户会触发这个动作的语句,比如:“帮我发通知短信”、“触发提醒短信”、“发送通知”等。
- 滚动到「Fulfillment」部分,勾选「Enable webhook call for this intent」,这样当用户说出触发短语时,就会调用上面的Fulfillment代码发送短信。
几个关键注意点
- 确保你的Twilio账户有可用余额,并且
from字段的号码是Twilio官方分配的有效号码(不能用自己的普通手机号)。 - 如果需要动态调整短信内容或者接收号码,可以从Dialogflow的参数中获取(比如让用户提供接收号码,先验证格式再传入Twilio接口)。
- 部署Inline Editor后,记得测试一下意图触发,查看Firebase日志或者Twilio控制台的短信记录,排查可能的错误。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

