javascript - 如何为 dialogflow v2 REST API 验证客户端
问题描述
通过 axios(post)向 dialogflow REST API 发出“detectIntent”请求,返回状态码 401。
我将“客户端密钥”作为授权持有者传递。这是直接取自对话流的密钥,标记为“客户端访问令牌”。
我正在尝试从我的 vue 应用程序发出对话流请求。这目前在 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);
});
}
}
预期的结果将是对话流返回一个响应对象。目前它正在接收请求,但由于授权不当而被拒绝。
解决方案
推荐阅读
- laravel-5 - 执行 laravel 管理操作后显示成功/失败消息
- docker - 尝试与外部主机通信时,由于 unknownhost 异常,docker 映像无法启动
- c# - 如何获取每个 DbContext 下的所有 DbContext 类和所有 DbSet
- r - 在 R 中使用附加列标记数据集中的异常值
- jquery - 如何获得绝对位置的孩子身高?
- typescript - 根据先前类型的输入(TypeScript)将输入的可能值限制为派生类型
- sql-server - 按月/年计算平均值
- bash - 将相邻数字相加
- angular - 如何在不提供 Angular CLI 的情况下生成服务?
- javascript - 地图功能值不显示