Я работаю над Google DialogFlow Api V2, и мне не совсем понятно, как правильно обращаться с процессом аутентификации.
Я уже создал ключ учетной записи службы в виде файла json, а затем запускаю следующую команду:
gcloud auth activate-service-account --key-file="credentials.json"
, который говорит, что он активирован, тогда я запускаю gcloud auth print-access-token
, который выведет мне токен доступа , и этот токен я могу передать в заголовок, используя следующий код:
fetch(configs.baseUrl + "query?v=20150910", {
body: JSON.stringify({
queryInput: {
text: {
text: "Hello",
languageCode: "en-US"
}
}}),
headers: {
'content-type': 'application/json',
"Authorization": "Bearer xxxx",
},
method: 'POST',
})
.then(response => response.json())
.then(data => {
console.log(data.result);
})
.catch(error => console.error(error))
Это будет прекрасно работать в течение 1 часа до истечения срока действия токена. Вопрос в том, как сгенерировать новый токен, поскольку у меня уже есть service-account-key-file.json могу ли я каким-то образом восстановить токен доступа из этой информации?
Использование этой клиентской библиотеки https://github.com/dialogflow/dialogflow-nodejs-client-v2 работает хорошо. Мне не нужно ничего делать с токеном доступа, но проблема в том, что я не хочу использовать Node.js
Было бы возможно, чтобы мне удавалось получать маркер доступа каждый раз по истечении срока действия, используя только javascript и service-account-key-file.json.сгенерировано.
Буду признателен за примеры кода!