401 параметры неавторизованной аутентификации отсутствуют в диалоге API - PullRequest
0 голосов
/ 02 июня 2019

Я разработал чат-ботов, используя Dialogflow api v1. Там не было никаких изменений в коде. Но теперь ответ от сервера «code»: 401, «errorType»: «unauthorized», «errorDetails»: «Параметры аутентификации отсутствуют. Я проверил в Postman, используя приведенный ниже URL-адрес. https://api.dialogflow.com/v1/query?v=519794&lang=en&query=hi&sessionId=519794&Content-Type=application/json и дал моему клиенту токен доступа в токене носителя. Когда я попробовал с методом post, я получил ошибку. Но когда я использовал метод GET, он работал в почтальоне. Итак, я попробовал тот же код в моем коде JavaScript и получил 401 несанкционированную ошибку. Что здесь не так?

1 Ответ

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

Я решил эту проблему, используя следующий код.

Использовал метод GET вместо POST в вызове Ajax и удалил JSON.stringify в параметре данных.

var text = "hello";var iRandom = Math.floor ((Math.random () * 10000000) + 1);

$. ajax ({

       type: "GET",

       url: "https://api.api.ai/v1/query?v=324233",

       contentType: "application/json; charset=utf-8",

       dataType: "json",

       headers: {

       "Authorization": "Bearer "+accessToken

        },

   data: { query: text, lang: "en", sessionId: iRandom},

   success: function(data) {
        //desired action              
         },

       error: function() {

         console.log("Internal Server Error");

      }

   });

Другое альтернативное решение:

Я сохранил более раннюю версию.

var iRandom = Math.floor ((Math.random () * 10000000) + 1);

тип: POST, данные: JSON.stringify ({query: text, lang: "en", sessionId: iRandom}),

Вместо того, чтобы передавать iRandom как число, я передал его как String и смог получить ответ из диалогового потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...