在对话框流程API中缺少401个未经授权的身份验证参数

时间:2019-06-02 09:22:28

标签: dialogflow

我已经使用Dialogflow api v1开发了聊天机器人。代码没有变化。但是,现在服务器的响应是“ code”:401,“ errorType”:“ unauthorized”,“ errorDetails”:“缺少身份验证参数。我使用以下URL在Postman中进行了检查。 https://api.dialogflow.com/v1/query?v=519794&lang=en&query=hi&sessionId=519794&Content-Type=application/json,并给我的客户访问令牌为不记名令牌。当我尝试使用post方法时遇到错误。但是,当我使用GET方法时,它在邮递员中有效。因此,我在javascript代码中尝试了相同的代码,并收到401未经授权的错误。怎么了?

1 个答案:

答案 0 :(得分:0)

我已使用以下代码解决了此问题。

在Ajax调用中使用GET方法而不是POST,并在data参数中删除了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({查询:文本,朗格:“ en”,sessionId:iRandom})

我没有以数字形式传递iRandom,而是以String形式传递,因此我能够从dialogflow中获得响应。