Как использовать выполнение DialogFlow и веб-хуки для Twilio? - PullRequest
3 голосов
/ 28 апреля 2019

Я вижу, что Dialogflow имеет выполнение и установку webhook, чтобы обеспечить дальнейший динамический и логистический контроль над ответами бота. Я пытаюсь привязать базу данных поверх webhook, но я использую канал обмена текстовыми сообщениями Twilio, и у меня возникли небольшие проблемы с их соединением. Когда я активирую выполнение, бот twilio не читает его. Есть ли способ решить эту проблему?

Я уже создал несколько веб-хуков, используя Flask, и кратко интегрировал их через выполнение, используя 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, чтобы этот бот отвечал соответственно тому, что было передано.

...