Я работаю над проектом с DialogFlow V2 Api с использованием Nodejs, и следующий код почему-то не работает:
var query = req.body.query;
const request = {
session: sessionPath,
queryInput: {
text: {
text: query,
languageCode: 'en-US',
},
},
queryParams: {
contexts: [
{
"name": "Question-followup",
"parameters": {},
"lifespanCount": 0
}
]
}
};
// Send request and log result
sessionClient
.detectIntent(request)
.then(responses => {
const result = responses[0].queryResult;
console.info(result);
res.json(result);
if (result.intent) {
console.info(` Intent: ${result.intent.displayName}`);
} else {
console.info(` No intent matchede.`);
}
})
.catch(err => {
console.error('ERROR:', err);
});
И ошибка, которую я получаю:
ERROR: { Error: 3 INVALID_ARGUMENT: Name 'Question-followup' does not match patterns 'projects/{projectId=}/agent/environments/{environmentId=}/users/{userId=}/sessions/{sessionId=}/contexts/{contextId=},projects/{projectId=}/agent/sessions/{sessionId=}/contexts/{contextId=}'.
Примечание: у меня действительно есть контекст «Контрольный вопрос» в намерении, поэтому проблема не в том, что контекст не существует или что-то в этом роде!
Есть идеи, что бы это было?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам необходимо указать полный путь к вашему контексту. Библиотека Dialogflow v2 Node.js имеет вспомогательный метод для создания контекстного пути для вас.
contexts: [
{
"name": contextsClient.contextPath(projectId, sessionId, "Question-followup"),
"parameters": {},
"lifespanCount": 1
}
]