如何调用Dialogflow ES检测意图但不触发Fulfillment/Webhook?
问题解答
可以通过在detectIntent请求中添加queryParams.webhookState参数实现需求,将该参数设置为'WEBHOOK_STATE_DISABLED'即可跳过Webhook执行,直接获取匹配的意图信息。
修改后的代码如下:
const request = { 'session': this.#session(), 'queryInput': { 'text': { 'text': message, 'languageCode': 'en-US' } }, 'queryParams': { 'webhookState': 'WEBHOOK_STATE_DISABLED' // 禁用Webhook的关键配置 } }; const detectIntentResponse = await this.sessionClient.detectIntent(request); // 提取命中的意图名称 const matchedIntent = detectIntentResponse[0].queryResult.intent.displayName;
关键说明
WEBHOOK_STATE_DISABLED参数会强制跳过所有Webhook调用,不受意图本身的Fulfillment配置影响。- 调用修改后的
detectIntent方法,返回结果会包含完整的意图匹配数据,但不会触发Webhook逻辑,也不会返回Webhook处理后的内容。
内容的提问来源于stack exchange,提问作者Swid
相关产品推荐
相关产品推荐

