如何通过 dialogflow API 服务将请求 headers 从集成传递到我的 webhook 服务?
How to pass request headers from integration to my webhook service through dialogflow API service?
下面是来自https://cloud.google.com/dialogflow/docs/fulfillment-overview
的流程图
如何通过 dialogflow API 服务 [4].
将请求 headers 从自定义聊天机器人客户端(集成 [2])传递到我的 webhook 服务[5]
我使用 RPC 调用将用户查询(用户在聊天机器人中输入的文本)发送到 DF API 服务:
const dfResponses = await sessionsClient.detectIntent(queryRequest);
responseBody = dfResponses[0].queryResult;
queryRequest
具有以下结构:
const queryRequest = {
session: sessionPath,
queryInput: {
text: {
text: queryText,
languageCode,
},
},
};
我没有看到可以通过聊天机器人小部件将 headers 传递到我的 webhook 服务的方法。
提前致谢! :)
更新:
根据@Prissoner 的以下评论,我现在正尝试通过 queryParams.payload
将我的身份验证令牌传递给我的 webhook
所以现在我的 queryRequest
如下所示:
session: sessionPath,
queryInput: {
text: {
text: queryText,
languageCode,
},
},
queryParams: {
payload: {
authToken
}
},
};
调用 sessionsClient.detectIntent(queryRequest)
时,我希望 request.originalDetectIntentRequest.payload
在 webhook 请求中包含 authToken
。但是 request.originalDetectIntentRequest.payload
是空的 object.
您不能将此作为 header 从 Dialogflow 到您的 webhook 的一部分。
但是,您可以将此数据包含在作为检测意图调用的一部分包含的 queryParameters 中。您有几个选择将它们放在哪里:
payload
字段包含任意 object 结构,因此您可以在此处以几乎任何格式放置您想要的任何内容。
- 作为
contexts
之一(特别是作为上下文参数)。这有点严格,但在某些情况下可能更容易管理和获取值。
您可以使用 queryParams object 的 webhookHeaders()
设置 webhook headers。
"queryParams": {
"webhookHeaders":{
"Authorization": "Bearer {{access_token}}"
}
}
传递自定义负载
下面是来自https://cloud.google.com/dialogflow/docs/fulfillment-overview
的流程图如何通过 dialogflow API 服务 [4].
将请求 headers 从自定义聊天机器人客户端(集成 [2])传递到我的 webhook 服务[5]我使用 RPC 调用将用户查询(用户在聊天机器人中输入的文本)发送到 DF API 服务:
const dfResponses = await sessionsClient.detectIntent(queryRequest);
responseBody = dfResponses[0].queryResult;
queryRequest
具有以下结构:
const queryRequest = {
session: sessionPath,
queryInput: {
text: {
text: queryText,
languageCode,
},
},
};
我没有看到可以通过聊天机器人小部件将 headers 传递到我的 webhook 服务的方法。
提前致谢! :)
更新:
根据@Prissoner 的以下评论,我现在正尝试通过 queryParams.payload
将我的身份验证令牌传递给我的 webhook
所以现在我的 queryRequest
如下所示:
session: sessionPath,
queryInput: {
text: {
text: queryText,
languageCode,
},
},
queryParams: {
payload: {
authToken
}
},
};
调用 sessionsClient.detectIntent(queryRequest)
时,我希望 request.originalDetectIntentRequest.payload
在 webhook 请求中包含 authToken
。但是 request.originalDetectIntentRequest.payload
是空的 object.
您不能将此作为 header 从 Dialogflow 到您的 webhook 的一部分。
但是,您可以将此数据包含在作为检测意图调用的一部分包含的 queryParameters 中。您有几个选择将它们放在哪里:
payload
字段包含任意 object 结构,因此您可以在此处以几乎任何格式放置您想要的任何内容。- 作为
contexts
之一(特别是作为上下文参数)。这有点严格,但在某些情况下可能更容易管理和获取值。
您可以使用 queryParams object 的 webhookHeaders()
设置 webhook headers。
"queryParams": {
"webhookHeaders":{
"Authorization": "Bearer {{access_token}}"
}
}
传递自定义负载