如何通过Twilio关联账户使用用户已有号码发送短信?
Twilio Connect代关联账户发短信问题解决方案
1. 接口调用失败修复方案
你当前调用失败的核心是请求参数的匹配规则不符合Twilio Connect的接口要求,正确的调用逻辑如下:
当使用关联账户下子账户中已有的号码发送短信时,请求参数需要满足以下规则:
- 请求URL中的账户SID必须填写发信号码所属的账户SID,也就是你存储了目标号码的
$TWILIO_CONNECTED_SUBACCOUNT_SID - 认证参数
-u的账号部分填写Twilio Connect按钮返回的授权账户SID(即$TWILIO_CONNECTED_MAIN_ACCOUNT_SID,命名格式为Subaccount for ConnectApp: ...的字段),密码部分填写你方的$TWILIO_AUTH_TOKEN,这个参数配置是正确的 - 额外需要检查两个前置条件:
- 你创建的Twilio Connect应用已申请了短信发送、关联账户子资源访问的对应权限
- 发信号码
+1aaabbbcccc确实属于$TWILIO_CONNECTED_SUBACCOUNT_SID对应账户,且状态正常、支持短信发送功能
正确的请求示例如下:
curl -X POST \ -d "Body=Hi there, this is a test message from cURL" \ -d "From=+1aaabbbcccc" \ -d "To=+1zzzxxxyyyy" \ "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_CONNECTED_SUBACCOUNT_SID/Messages" \ -u "$TWILIO_CONNECTED_MAIN_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"
2. 直接使用用户主账户已有号码的实现方案
该需求可以实现,不需要你开发完整的号码购买UI,只需做以下配置:
- 首先调整你的Twilio Connect应用的授权权限,勾选
incoming_phone_numbers读取权限、主账户资源访问权限,确保授权时可以获取到用户主账户下的号码列表访问权限 - 用户完成授权后,你可以直接调用Twilio的
IncomingPhoneNumbers接口拉取用户主账户下所有已激活、支持短信功能的号码,在你的应用内只需要加一个简单的下拉选择组件供用户选择发信号码即可 - 选中用户主账户的号码发送短信时,只需把请求URL中的账户SID替换为用户的主账户SID即可,认证参数不需要修改,不需要获取用户的Twilio Auth Token
内容的提问来源于stack exchange,提问作者mpen
相关产品推荐
相关产品推荐

