DialogFlow v2 Access Token не может сгенерировать - PullRequest
0 голосов
/ 31 мая 2018

С версией 1 я так общался с DialogFlow Api!

fetch(configs.baseUrl + "query?v=20150910", {
    body: JSON.stringify({query: text, lang: "en", sessionId: "somerandomthing"}),
    headers: {
        'content-type': 'application/json',
        "Authorization": "Bearer " + configs.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))

Мне просто нужно было передать токен доступа в заголовок, и все!

Не знаюкак я могу заставить этот код работать с DialogFlow v2, я застреваю на токене доступа, один из моих агентов V2, я больше не вижу токен доступа, но вместо этого у меня есть идентификатор проекта и учетная запись службы.

Мне удается создать ключ службы из консоли Google и активировать через gcloud, но я просто не знаю, где получить или как сгенерировать этот токен доступа, или мне нужен токен доступа в v2, если нет, как это сделать?Я имею дело с этим?

Рабочий пример был бы очень признателен.

Примечание. Я скачал этот файл, который содержит данные такого рода, и использовал этот файл в gcloud, и он сказал, что служба активировала что-то, нотогда что?Это все?что мне делать дальше, чтобы я мог сделать http-вызов V2 DialogFlow.

{
  "type": "service_account",
  "project_id": "xxxx",
  "private_key_id": "xxxx",
  "private_key": "-----BEGIN PRIVATE KEY-----xxxx",
  "client_email": "xxxx",
  "client_id": "xxxx",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dialogflow-client%40xxxx"
}

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Вас может заинтересовать это:

https://cloud.google.com/docs/authentication/api-keys

0 голосов
/ 10 июня 2018

Ниже приведен еще один пример создания токена доступа DialogFlow V2 с использованием Node.js.Библиотека, которая используется в приведенном ниже коде: google-oauth-jwt .

const googleAuth = require('google-oauth-jwt');

function generateAccessToken() {
 return new Promise((resolve) => {
  googleAuth.authenticate(
   {
    email: <client_email>,
    key: <private_key>,
    scopes: 'https://www.googleapis.com/auth/cloud-platform',
   },
   (err, token) => {
    resolve(token);
   },
  );
 });
}

Вы можете найти свои client_email и private_key из файла ключа JSON, который вы скачалисо страницы учетной записи службы проекта Google Cloud Platform.Если вы не знаете, как и где его скачать, вы можете проверить мою запись в блоге здесь .

Чтобы узнать, какая область, какая область вам может понадобиться, вы можете воспользоваться API REST DialogFlow V2 RESTдокументация страница .

0 голосов
/ 03 июня 2018

Вы поступили правильно, но вы, вероятно, захотите использовать Dialogflows Node.js client SDK .Эти SDK автоматически читают файл JSON аутентификации при создании экземпляра клиента (см. пример на Github, файл читается ... = new dialogflow.SessionsClient()).

...