Интеграция Skype и мессенджер facebook не отвечает текст выполнения

За исключением приложения Google Assistant, все мои интеграции отвечают статическим ответом по умолчанию вместо пользовательского выполнения, которое я размещал на своем сервере. Я уже проверил запрос и ответ json из диалогового потока на мой сервер, они в порядке ... когда я делаю запрос из скайпа, ответ от моего сервера имеет настраиваемое сообщение выполнения, но вместо этого скайп показывает статический ответ для скайпа, который я написал Я вкладка текстового сообщения по умолчанию для моего намерения. пожалуйста, дайте мне знать, что мне нужно сделать. Благодарность

Ожидаемый разговор через (Skype) Пользователь: несколько слов на английском языке Агент (от выполнения): английский, это ответ для английского

Фактический разговор, который я получаю: Пользователь: несколько слов на английском языке Агент (из статического текстового ответа диалогового потока): Привет .. Я отвечаю по скайпу по умолчанию

Обратите внимание, что это происходит только в мессенджере facebook, skype (это единственные интеграции, которые я включил), но не в симуляторе диалогового процесса и действиях в симуляторе Google.

Я думаю, что эта проблема связана с концом диалогового окна, потому что и мессенджер facebook, и скайп ведут себя одинаково.

    const express = require('express')
const bodyParser = require('body-parser')
const {dialogflow,
  Permission,
Suggestions,
Carousel,
BrowseCarouselItem,
BrowseCarousel,
Image,}= require('actions-on-google')

const request = require('request')
const dialogflowapp = dialogflow()
const app = express()
app.use(bodyParser.json())
app.set('port', (process.env.PORT || 5000))



const LANGUAGE_INTENT = 'Languages';
const LANGUAGE_TYPE_ENTITY = 'LanguageType';
dialogflowapp.intent(LANGUAGE_INTENT, (conv) => {
     const quote_type = conv.parameters[LANGUAGE_TYPE_ENTITY].toLowerCase();
     if (quote_type === "telugu") {
     conv.ask("Telugu, This response is for telugu");
     } else if (quote_type === "english") {
     conv.ask("English, this is response is for english");
     } else if (quote_type === "hindi") {
     conv.ask("Hindi, this response is for Hindi");
     } else {
         conv.ask("Cann't understand bro");
     }
});
dialogflowapp.catch((conv, error) => {
  console.error(error);
  conv.ask('Something went wrong!');
});


app.post('/webhook',(req,res, next)=>{
  console.log(req.body);
  next();
}, dialogflowapp);

app.listen(app.get('port'), function () {
  console.log('* Webhook service is listening on port:' + app.get('port'))



Ответы (1)


Проблема в том, что вы используете библиотеку actions-on-google для выполнения, которая создает только те результаты, которые действительны в Google Assistant.

Если вы хотите отправить ответ, который действителен для других интеграций Dialogflow, вам нужно будет использовать диалоговое окно-выполнение библиотеки.

person Prisoner    schedule 09.01.2019
comment
да спасибо. Я думаю, я перепутал код из нескольких руководств, которые я прошел. Я пытаюсь узнать местоположение пользователя (бот для заказа еды), он отлично работает с помощником Google, но не с мессенджером facebook, нужно ли мне писать отдельную логику для каждой интеграции, чтобы получить местоположение? - person Baji shaik; 10.01.2019
comment
Рад, что это помогло. Если у вас есть другой вопрос, задайте новый вопрос на StackOverflow. - person Prisoner; 10.01.2019
comment
я только что сделал, ты можешь взглянуть на это? stackoverflow.com/questions/54156935/ - person Baji shaik; 12.01.2019