Я пытаюсь использовать конечную точку DialogFlow v2, но по какой-то причине я получаю неавторизованное сообщение, даже если я могу сгенерировать токен доступа, используя следующую команду:
Сначала я запускаю это для авторизации службычтобы моя локальная машина могла авторизоваться для службы: gcloud auth activate-service-account --key-file=<service-account-key-file.json>
, тогда я получаю токен доступа с помощью следующей команды: gcloud auth print-access-token
и этот токен доступа я прилагаю к следующему коду:
fetch(configs.baseUrl + "query?v=20150910", {
body: JSON.stringify({query: text, lang: "en", sessionId: "somerandomthing"}),
headers: {
'content-type': 'application/json',
"Authorization": "Bearer " + accessToken,
},
method: 'POST',
})
.then(response => response.json())
.then(data => {
console.log(data.result.fulfillment.speech);
return data.result.fulfillment.speech;
})
.catch(error => console.error(error))
IНе знаете, если это правильный путь для достижения связи с DialogFlow V2?Пожалуйста, если вы могли бы сообщить мне, что я делаю неправильно и почему я говорю, что я не авторизован, так как я авторизируюсь вышеуказанными командами и смог получить маркер доступа!
Редактировать:
После нескольких изменений мой код, наконец, выглядит следующим образом:
fetch("https://dialogflow.googleapis.com/v2beta1/projects/xxx/agent/sessions/xxx/:detectIntent", {
body: JSON.stringify({queryInput: "Hello"}),
headers: {
'content-type': 'application/json',
"Authorization": "Bearer xxxx",
},
method: 'POST',
})
.then(response => response.json())
.then(data => {
console.log(data.result.fulfillment.speech);
return data.result.fulfillment.speech;
})
.catch(error => console.error(error))
и новое сообщение об ошибке, которое я получаю:
{
"error": {
"code": 400,
"message": "Invalid value at 'query_input' (type.googleapis.com/google.cloud.dialogflow.v2beta1.QueryInput), \"Hello\"",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "query_input",
"description": "Invalid value at 'query_input' (type.googleapis.com/google.cloud.dialogflow.v2beta1.QueryInput), \"Saanko yhteystiedot?\""
}
]
}
]
}
}