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

REDCap结合Twilio发送短信后,如何用Python追踪短信送达状态?

解决Twilio短信记录查询与送达状态获取问题

一、消息日志无记录但Insights有数据的原因及处理

  • 确认使用的是主账号还是子账号:如果是子账号,需主账号在权限设置中开启其访问消息日志的权限。
  • 调整时间筛选范围:Twilio消息日志默认展示近期记录,尝试扩大时间区间,覆盖你发送50条短信的时段。
  • 核对发送账号:检查批量发送短信时使用的Account SID,确保与当前查看日志的账号一致,避免误关联其他账号。

二、Python API调用返回空列表的解决方案

你的代码仅设置了limit=20,未指定时间范围,且可能存在权限或账号匹配问题,调整后的代码加入时间筛选并强化信息输出:

import os
from twilio.rest import Client
from datetime import datetime, timedelta

# 确认环境变量已配置正确的账号信息
account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

# 设置覆盖短信发送时段的时间范围(示例为最近7天)
start_date = datetime.now() - timedelta(days=7)
end_date = datetime.now()

# 查询指定时间范围内的消息,扩大limit覆盖50条短信
messages = client.messages.list(
    date_sent_after=start_date,
    date_sent_before=end_date,
    limit=100
)

# 输出包含目标号码和送达状态的关键信息
for msg in messages:
    print(f"目标号码: {msg.to}, 送达状态: {msg.status}, 消息SID: {msg.sid}")

额外排查点

  • 验证环境变量中的账号信息是否与发送短信的Twilio账号一致,避免因账号不匹配查不到记录。
  • 确认REDCap集成Twilio时使用的账号信息,与代码中调用的账号保持统一。

三、快速获取无法送达号码的方法

除API调用外,可直接在Twilio控制台操作:

  • 进入Insights页面,找到对应短信发送的数据集,导出详细报告,报告包含目标号码和送达状态字段。
  • 筛选状态为failed或undelivered的记录,直接提取无法送达的号码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:03:25