如何接收Twilio号码的短信回复至个人号码并实现代回复显原号?
Twilio 双向短信转发实现方案
一、将潜在客户的短信回复转发至个人号码
你可以通过配置Twilio号码的Webhook+简单后端实现:
设置Twilio号码的短信接收Webhook
登录Twilio控制台,找到你用于发送营销短信的号码,在「Messaging」配置项里,把「A Message Comes In」的处理方式设为「Webhook」,填写你的后端服务公网URL,请求方法选「POST」。编写后端转发逻辑
用任意语言写一个接收Twilio请求的服务,调用Twilio API将客户回复转发到你的个人号码。以下是Python Flask的示例:
from flask import Flask, request from twilio.rest import Client app = Flask(__name__) # 替换为你的Twilio账号信息 account_sid = '你的Twilio账号SID' auth_token = '你的Twilio Auth Token' client = Client(account_sid, auth_token) # 配置号码:你的个人号码(带国家码,如+8613xxxxxx)、你的Twilio号码 personal_phone = '+8613xxxxxx' twilio_phone = '+1xxxxxx' @app.route('/forward-sms', methods=['POST']) def forward_sms(): # 获取客户发来的短信内容和号码 customer_msg = request.form['Body'] customer_phone = request.form['From'] # 转发到个人号码,附带客户号码便于识别 client.messages.create( body=f"【客户回复】{customer_phone}:{customer_msg}", from_=twilio_phone, to=personal_phone ) return '', 200 if __name__ == '__main__': app.run(port=5000)
- 部署后端服务
本地测试可以用ngrok生成临时公网URL(ngrok http 5000),正式使用可部署到云服务器或Serverless平台(如Twilio Functions)。
二、从个人号码回复时,向客户显示Twilio号码
可以在同一个后端里添加回复处理逻辑,或者用Twilio Studio可视化配置:
方式1:后端扩展逻辑
修改上面的后端代码,判断如果是你从个人号码发来的回复,就解析出目标客户号码,用Twilio号码发送:
@app.route('/forward-sms', methods=['POST']) def handle_sms(): incoming_msg = request.form['Body'] sender_phone = request.form['From'] receiver_phone = request.form['To'] # 如果是个人号码发来的回复 if sender_phone == personal_phone: # 假设回复格式为「客户号码 回复内容」,例如「+123456789 我会尽快联系你」 msg_parts = incoming_msg.split(' ', 1) if len(msg_parts) >= 2: target_customer = msg_parts[0] reply_content = msg_parts[1] # 用Twilio号码发送回复 client.messages.create( body=reply_content, from_=twilio_phone, to=target_customer ) return '', 200 # 如果是客户发来的消息,转发到个人号码 else: client.messages.create( body=f"【客户回复】{sender_phone}:{incoming_msg}", from_=twilio_phone, to=personal_phone ) return '', 200
方式2:用Twilio Studio无代码实现
- 登录Twilio控制台,进入「Studio」,新建一个Flow,触发方式选「Incoming Message」。
- 添加「Send Message」组件:收件人设为你的个人号码,内容填
客户{{trigger.message.From}}回复:{{trigger.message.Body}},发送方选你的Twilio号码;同时在组件的「Set Variables」里存储客户号码,比如flow.vars.customer_phone = {{trigger.message.From}}。 - 添加「Wait for Reply」组件,设置等待你从个人号码回复。
- 添加第二个「Send Message」组件:收件人选
{{flow.vars.customer_phone}},发送方选你的Twilio号码,内容填{{widgets.wait_for_reply.inbound.Body}}。
注意事项
- 确保你的Twilio号码支持双向短信(绝大多数号码默认支持)。
- 国内个人号码需要在Twilio控制台完成验证,才能接收Twilio发送的短信。
- 如果用Serverless部署,推荐用Twilio Functions,无需自己维护服务器,直接在Twilio控制台编写代码。
内容的提问来源于stack exchange,提问作者Fahad Sheji
相关产品推荐
相关产品推荐

