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

如何结合现有fetchAll函数与Twilio预约提醒教程实现就诊短信通知

完全可以结合实现,但你现有fetchAll函数不能直接复用,需要做针对性调整,核心原因是你当前的fetchAll是前端浏览器环境的代码,依赖浏览器localStorage对象获取JWT令牌,而Twilio的预约提醒教程基于Node.js后端环境运行,服务端不存在浏览器的localStorage API,直接照搬会报错。

调整方案与实现步骤

1. 改造就诊数据拉取逻辑

你可以二选一实现服务端可用的拉取逻辑:

  • 方案一:给现有Java后端新增专供内部服务调用的就诊数据查询接口,不用前端JWT校验,改用固定内部密钥做权限校验,在Node服务中重写数据拉取方法,调用该接口获取就诊数据
  • 方案二:直接在Node服务中连接MySQL数据库,编写查询逻辑直接过滤出距离当前时间2天的待提醒就诊记录,比调用Java接口性能更高、链路更短

2. 实现定时轮询逻辑

在Node服务中安装node-cron依赖配置定时任务,可根据你的业务需求设置执行频率(比如每天凌晨执行一次,或每小时执行一次),每次任务触发时执行以下逻辑:

  • 拉取符合时间条件的就诊记录
  • 校验就诊状态,排除已取消、已完成的就诊
  • 对符合发送条件的记录触发短信发送

3. 对接Twilio短信发送逻辑

参考Twilio教程的初始化方法,在Node服务中初始化Twilio客户端:

const twilio = require('twilio');
const client = twilio('你的TWILIO_ACCOUNT_SID', '你的TWILIO_AUTH_TOKEN');

拿到就诊记录后,拼接短信内容,调用发送接口:

client.messages
  .create({
     body: `您好,您的就诊预约将在2天后开始,请提前做好准备。`,
     from: '你的Twilio发送号码',
     to: '用户手机号(需符合E.164格式,比如+8613xxxxxxxxx)'
   })
  .then(message => {
    // 发送成功后,更新就诊记录的提醒发送状态,避免重复发送
  });
注意事项
  • 需统一服务端和就诊时间的时区,避免时间差计算错误
  • 新增异常捕获逻辑,对数据拉取失败、短信发送失败的场景记录日志,方便后续排查
  • 提前校验用户手机号格式,确保符合Twilio要求的E.164标准
  • 如果就诊数据量较大,不要全量拉取后再过滤,直接在数据库查询阶段就加上时间条件,减少性能消耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:30:06