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

WatsonX Assistant与Twilio集成:无法获取WhatsApp用户手机号求助

WatsonX Assistant + Twilio WhatsApp集成:无法获取用户手机号的解决办法
  • 我之前遇到过完全相同的问题,官方集成确实不会自动将Twilio发送的用户手机号存入WatsonX的上下文变量中。
  • 可行的解决路径是通过Twilio Functions添加一层中间处理,手动提取并传递手机号到WatsonX:
    1. 在Twilio控制台创建一个新的Twilio Function
    2. 在Function中接收Webhook的POST请求,从event.From字段提取用户的WhatsApp手机号(格式为whatsapp:+[号码])
    3. 将提取到的手机号加入发送给WatsonX Assistant的请求上下文变量中(比如命名为user_phone)
    4. 修改Twilio的Webhook地址,指向该Function的部署URL,由Function转发请求到WatsonX的集成端点
  • 以下是Twilio Function的示例代码:
exports.handler = function(context, event, callback) {
  const axios = require('axios');
  const Twilio = require('twilio');
  
  // 从Twilio请求中获取用户手机号和消息内容
  const userPhone = event.From;
  const userMessage = event.Body;
  
  // 替换为你的WatsonX Assistant集成端点URL(可从IBM控制台获取)
  const watsonEndpoint = context.WATSON_ASSISTANT_INTEGRATION_URL;
  
  // 构造发送给WatsonX的请求体,将手机号存入上下文变量
  const watsonRequest = {
    input: { text: userMessage },
    context: {
      variables: {
        user_phone: userPhone
      }
    }
  };
  
  // 转发请求到WatsonX并处理回复
  axios.post(watsonEndpoint, watsonRequest, {
    headers: { 'Content-Type': 'application/json' }
  })
  .then(response => {
    const botReply = response.data.output.generic[0].text;
    const twiml = new Twilio.twiml.MessagingResponse();
    twiml.message(botReply);
    callback(null, twiml);
  })
  .catch(err => {
    console.error('请求WatsonX失败:', err);
    callback(err);
  });
};
  • 额外注意:需要在WatsonX Assistant的技能中预先定义user_phone这个上下文变量,这样就能在对话流程的节点或回复中直接引用${user_phone}了。
  • 官方集成没有提供自定义字段映射的选项,所以中间件中转是目前最可靠的解决方式。

内容的提问来源于stack exchange,提问作者Lucas MiraB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:40:00