You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将WhatsApp消息内容与用户号码传递至Dialogflow ES API?

解决Dialogflow detectIntent自定义Payload不显示在Fulfillment中的问题

问题出在你放置自定义Payload的位置错误,Dialogflow的detectIntent接口要求客户端自定义数据必须放在queryParams.payload字段下,而非请求根节点的payload字段。

修改后的代码示例

const sessionId = phone_number_id; // 用手机号作为会话ID
const sessionPath = sessionClient.projectAgentSessionPath(projectId, sessionId);

const request = {
  session: sessionPath,
  queryInput: {
    text: {
      text: msg_body,
      languageCode: "id-ID"
    },
  },
  // 把自定义数据放在queryParams.payload下
  queryParams: {
    payload: {
      data: "testing",
      phoneNumber: phone_number_id
    }
  }
};

console.log("request", request);
await sessionClient.detectIntent(request)
  .then(responses => {
    console.log("DetectIntent", JSON.stringify(responses));
  })
  .catch(err => {
    console.error("ERROR:", err);
  });

在Fulfillment中获取自定义数据

调整后,你的自定义Payload会出现在Fulfillment请求体的originalDetectIntentRequest.payload中,比如在Node.js Fulfillment里可以这样获取:

// 假设request是Fulfillment收到的请求对象
const userPhoneNumber = request.body.originalDetectIntentRequest.payload.phoneNumber;
const customData = request.body.originalDetectIntentRequest.payload.data;

内容的提问来源于stack exchange,提问作者Maulana ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:01:14