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

如何通过Twilio API实现多用户WhatsApp消息关键词提醒功能?

多用户WhatsApp关键词提醒实现方案(基于Twilio)

核心实现思路

Twilio不需要你主动提交用户号码列表,而是通过全局Webhook+本地数据库关联实现多用户场景:

  • 先在Twilio控制台配置WhatsApp服务(Sandbox测试/正式Business API),设置一个接收所有 incoming 消息的Webhook URL,指向你的应用接口。
  • 你的应用用数据库存储用户信息:用户ID、绑定的WhatsApp号码、提醒方式(推送/邮件等)。
  • 用户注册时,引导他们完成Twilio的号码验证(比如发送指定代码到你的Twilio Sandbox号码),验证后Twilio会自动把该用户号码的消息转发到你的Webhook。
  • 当Twilio收到消息时,会把发件人号码、消息内容等参数POST到你的Webhook接口,你在接口里匹配用户、检查关键词,触发提醒。

示例代码(Node.js + Express)

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// 模拟用户数据库,实际替换为MongoDB/MySQL等持久化存储
const userDB = [
  { userId: 'u_001', waNumber: 'whatsapp:+1234567890', alertType: 'push' },
  { userId: 'u_002', waNumber: 'whatsapp:+0987654321', alertType: 'email' }
];

app.use(bodyParser.urlencoded({ extended: false }));

// 接收Twilio Webhook的接口
app.post('/twilio-wa-webhook', (req, res) => {
  const senderWaNumber = req.body.From;
  const msgBody = req.body.Body.toLowerCase();

  // 匹配对应的用户
  const targetUser = userDB.find(user => user.waNumber === senderWaNumber);
  if (!targetUser) {
    return res.status(404).send('User not registered');
  }

  // 检查关键词
  if (msgBody.includes('elephant')) {
    // 触发提醒逻辑,替换为你的实际推送/邮件代码
    triggerAlert(targetUser.userId, targetUser.alertType);
    console.log(`Alert triggered for user ${targetUser.userId}`);
  }

  // 回复Twilio,不需要给用户发消息就返回空响应
  res.send('<Response></Response>');
});

// 模拟提醒发送函数
function triggerAlert(userId, alertType) {
  if (alertType === 'push') {
    // 调用你的推送服务API,比如:
    // pushClient.send(userId, '你收到含"elephant"关键词的WhatsApp消息');
  } else if (alertType === 'email') {
    // 调用邮件服务API,比如:
    // emailClient.send(userId, 'WhatsApp关键词提醒', '你的WhatsApp收到包含"elephant"的消息');
  }
}

app.listen(3000, () => {
  console.log('服务启动在3000端口');
});

Twilio官方文档重点参考

  • Webhook配置:在Twilio控制台的WhatsApp服务页面,设置「Incoming Messages」的Webhook URL为你的应用接口,请求方法选POST。
  • 消息参数:Twilio发送给Webhook的POST请求包含From(用户的WhatsApp号码,格式为whatsapp:+XXX)、Body(消息内容)等核心字段,可查阅Twilio消息资源文档。
  • 用户号码绑定:引导用户发送指定代码(比如JOIN 你的沙箱名称)到Twilio Sandbox号码,完成验证后,该用户的消息会自动转发到你的Webhook。

替代服务选项

  • Meta WhatsApp Business API:直接使用官方API,支持多号码管理,Webhook逻辑类似,但需要企业资质,审批周期较长。
  • Plivo:和Twilio类似的云通讯服务,WhatsApp集成的多用户支持更简洁,文档门槛更低。
  • MessageBird:提供批量号码管理功能,Webhook机制完善,适合多用户场景快速落地。

其他可行思路

  • 无服务器方案:用Twilio Functions替代自建服务器,直接在Twilio平台编写Webhook处理逻辑,调用你的数据库接口触发提醒,减少运维成本。
  • 批量拉取(非实时):如果不需要实时提醒,可定期调用Twilio的Messages API拉取所有用户号码的消息记录,批量检查关键词后发送提醒,但延迟较高,仅适合非实时场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:32:21