Я работаю с чат-ботами Oracle и Google Home и создаю приложение на основе действий в Google, данные которого обрабатываются ботом Oracle.Но я нашел проблему с общением между ними.Они общаются через webhook, у меня есть приложение, которое получает пользовательские входные данные и отправляет его в чат-бот, но чат-бот отправляет ответ обратно асинхронным способом, и я не могу взять данные ответа в запросе POST и показать егопользователю, поэтому я должен отправить медиа-ответ пользователю, чтобы дождаться ответа от бота, и после вызова другого действия, чтобы проверить, готов ли ответ.
Я хотел бы получить ответ синхронно или, по крайней мере, не нужно отправлять медиаответ, чтобы дождаться ответа бота.Возможно ли это?
Мне нужно использовать чат-боты Oracle и Google Home.
Этот вопрос содержит мой код: Как выполнять асинхронные вызовы из внешних служб для действий в Google?
РЕДАКТИРОВАТЬ:
Конечная точка /text
отправляет пользовательские входные данные в мой чат-бот
app.intent('actions.intent.MAIN', conv => {
console.log('entra en main');
conv.ask('Hi, how is it going?');
});
app.intent('actions.intent.TEXT', (conv, input) => {
var userId = conv.body.user.userId;
console.log(userId);
if(userId && input){
return textFound(conv, input, userId);
}else{
textnotFound(conv);
}
});
express_app.post('/text', app);
Чат-бот отправляет ответ другой конечной точке:
express_app.post('/webhook', bodyParser.json(), (req, res)=>{
message = req.body;
const userId = req.body.userId;
if (!userId) {
return res.status(400).send('Missing User ID');
}
if (webhook.verifyMessageFromBot(req.get('X-Hub-Signature'), req.body, metadata.channelSecretKey)) {
console.log("todo bien");
res.sendStatus(200);
} else {
console.log("Todo mal");
res.sendStatus(403);
}
});
Отсюда я не могу отправить данные из ответа в Actions-on-Google, мне нужно сохранить данные в очереди и после вызова действия TEXT снова, чтобы проверить очередь.Я хотел бы получить ответ в ответ на первоначальный запрос, если это возможно, или получить другой обходной путь для решения этой проблемы.