Как проверить подлинность клиента для API-интерфейса остальные в dialogflow v2 - PullRequest
0 голосов
/ 25 марта 2019

Выполнение запроса 'Detect Intent', сделанного через axios (post) в диалоговом потоке, REST API возвращает с кодом состояния 401.

Я передаю «ключ клиента» в качестве носителя авторизации. Этот ключ взят непосредственно из диалогового потока, который помечен как «токен доступа клиента».

Я пытаюсь сделать запросы диалогового потока из моего приложения vue. В настоящее время он обслуживается на локальном хосте: 8080.

Я попытался передать ключ администратора, но безуспешно.

Что мне нужно сделать, чтобы правильно аутентифицировать запрос.

Вот мой метод vue, который пытается отправить запрос через axios:

send() {      
      var config = {
        headers: {
          Authorization: "bearer XXXXX_Client_API_Key"
        }
      };
      var payload = {
        // session: "projects/agentID-XXXX/agent/sessions/" + this.currentUser,
        queryParams: {
          resetContexts: true
        },
        queryInput: {
          text: {
            text: this.newMessage,
            languageCode: "en-US"
          }
        }
      };
      var url =
        "https://dialogflow.googleapis.com/v2/projects/agentID-XXX/agent/sessions/" +
        this.currentUser +
        ":detectIntent";

      if (this.newMessage) {
        axios
          .post(url, payload, config)
          .then(response => {
            console.log(response.queryResult.fulfillmentTest);
          })
          .catch(error => {
            console.error(error);
          });
      }
    }

Ожидаемые результаты позволят диалоговому потоку вернуть объект ответа. В настоящее время он получает запрос, но отказывается из-за неправильной авторизации.

...