如何为dialogflow v2 rest API认证客户端

时间:2019-03-25 19:53:32

标签: javascript vue.js axios dialogflow

通过axios(发布)向dialogflow REST API发出“ detectIntent”请求,返回状态码为401。

我正在将“客户端密钥”作为授权载体传递。这是直接从dialogflow中获取的密钥,该密钥被标记为“客户端访问令牌”。

我正在尝试从我的Vue应用程序发出dialogflow请求。当前正在localhost: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);
          });
      }
    }

预期结果将使dialogflow返回一个响应对象。目前,它正在接收请求,但由于授权不当而被拒绝。

0 个答案:

没有答案