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

在Twilio发送SMS时添加请求头,接收回复时获取头信息的方法

在Twilio发送SMS并在回复时获取自定义元数据的正确方法

问题分析

你用X-Twilio-Additional-Metadata请求头传递元数据的方式不对——这个头只会被Twilio记录在请求日志里,不会自动关联到用户回复的Webhook请求中,所以你拿不到对应的头信息。

正确实现步骤

1. 发送短信时绑定自定义元数据

推荐用Twilio官方SDK发送,能直接给消息绑定自定义元数据(存在Attributes字段,支持JSON格式):

using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;

// 初始化客户端
TwilioClient.Init(accountSid, authToken);

// 自定义元数据,转成JSON字符串
var customMetadata = "{\"tag\":\"test\", \"user_id\":\"123\"}";

// 发送短信并绑定元数据
var message = MessageResource.Create(
    body: "Hello, world!",
    from: new PhoneNumber("+15077087284"),
    to: new PhoneNumber("+14243089011"),
    attributes: customMetadata
);

// 可选:把消息Sid和元数据存到你的数据库,方便后续快速查询
// SaveToDb(message.Sid, customMetadata);

如果一定要用HttpClient发送,要在表单参数里加Attributes字段,而不是自定义请求头:

var parameters = new Dictionary<string, string>()
{
    { "Body", "Hello, world!" },
    { "From", "+15077087284" },
    { "To", "+14243089011" },
    { "Attributes", "{\"tag\":\"test\"}" } // 这里放自定义元数据
};

request.Content = new FormUrlEncodedContent(parameters);
// 不需要X-Twilio-Additional-Metadata这个头

2. 接收用户回复时获取元数据

当用户回复短信,Twilio会向你配置的Webhook URL发POST请求,请求里带OriginalMessageSid(就是你之前发的那条短信的Sid)。你有两种方式拿元数据:

  • 调用Twilio API查询
    在你的Webhook处理代码里,用OriginalMessageSid查原消息的Attributes:
    using Twilio.Rest.Api.V2010.Account;
    
    // 从请求表单里取OriginalMessageSid
    var originalSid = Request.Form["OriginalMessageSid"];
    
    // 查询原消息
    var originalMessage = MessageResource.Fetch(pathSid: originalSid);
    
    // 拿到自定义元数据
    var metadata = originalMessage.Attributes;
    
  • 查本地数据库
    发送短信时把MessageSid和元数据存到你的数据库,回复时用OriginalMessageSid直接查库,不用调用Twilio API,速度更快。

注意点

  • Attributes字段最多支持1024字符的JSON,别超限制。
  • 你的Webhook URL必须是公网能访问的,调试可以用ngrok之类的工具内网穿透。
  • 配置Webhook时选POST方法,请求格式选application/x-www-form-urlencoded。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:53:15