我看到Dialogflow具有fulfiment和webhook安装,可以对机器人响应进行进一步的动态和后勤控制。我试图将数据库挂在webhook上,但是我使用的频道是Twilio短信,并且在连接两者时遇到了一些麻烦。当我激活激活时,twilio机器人不会读取它。有什么办法解决这个问题?
我已经使用Flask创建了一些webhooks,并使用ngrok短暂地整合了它,但是该机器人通过我为其设置的文本响应进行响应。它可用于Google帮助和Facebook Messenger,但不能与Twilio集成。 我还尝试使用inlineJS来查看是否有什么区别,以专门将Twilio定义为要使用的消息传递渠道,但是并没有达到成功的顶峰。
const functions = require('firebase-functions');
const {dialogflow} = require('actions-on-google');
const GOODLOCATION = 'location.good'
const NEARLOCATION = 'location.near'
const CHEAPLOCATION = 'location.cheap'
const WELCOME_INTENT = 'Default Welcome Intent'
const FALLBACK_INTENT = 'Default Fallback Intent'
const CRAVINGCULTUREINTENT = 'CravingCulture'
const CRAVINGITEM = 'CravingItem'
const app = dialogflow()
/*Supported Platforms*/
const PLATFORMS = {
UNSPECIFIED: 'PLATFORM_UNSPECIFIED',
FACEBOOK: 'FACEBOOK',
SLACK: 'SLACK',
TELEGRAM: 'TELEGRAM',
KIK: 'KIK',
SKYPE: 'SKYPE',
LINE: 'LINE',
VIBER: 'VIBER',
ACTIONS_ON_GOOGLE: 'ACTIONS_ON_GOOGLE',
TWILIO: 'TWILIO'
};
// Platforms that support Rich messaging
const SUPPORTED_RICH_MESSAGE_PLATFORMS = [
PLATFORMS.FACEBOOK,
PLATFORMS.SLACK,
PLATFORMS.TELEGRAM,
PLATFORMS.KIK,
PLATFORMS.SKYPE,
PLATFORMS.LINE,
PLATFORMS.VIBER,
PLATFORMS.ACTIONS_ON_GOOGLE,
PLATFROM.TWILIO
];
app.intent(WELCOME_INTENT, (conv)=> {
if(agent.requestSource === agent.TWILIO){
conv.ask('This is working, Congratulations!')
}
else{
conv.ask("Could not be served")
}
});
app.intent(FALLBACK_INTENT, (conv)=> {
conv.ask("I am unaware of that phrase, could you repeat that?")
});
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)
我希望输出是用户通过twilio插入的任何东西,该机器人将相应地响应传入的内容。
答案 0 :(得分:0)
也许有点晚了-希望这个问题仍然不会阻止/困扰您。
我在想你打算要
https://stackoverflow.com/a/50767410/1499803
不是:
if(agent.requestSource === PLATFORMS.TWILIO){
但是,if(agent.requestSource === agent.TWILIO){
的值实际上也是小写的“ twilio”。