使用Twilio PHP SDK 5.16发送短信时遇HTTP 401无法创建记录问题
解决Twilio短信发送时的HTTP 401错误
Hey,遇到这个401错误别慌,它本质就是Twilio不认你的身份,直接拒绝了请求。我帮你整理了几个必查的点,一步步来排查:
1. 先核对Account SID和Auth Token的准确性
- 赶紧登录Twilio控制台,找到你的Account SID和Auth Token,这俩是区分大小写的,别手滑复制错字符。
- 注意别搞混测试环境和生产环境的凭据!测试环境的SID虽然也是
AC开头,但有专门的测试标记,不能拿到生产环境用,反过来也不行。 - 代码里的
$account_sid = 'sid';和$auth_token = 'token';可不能留着占位符,一定要替换成你控制台里的真实有效值。
2. 检查Twilio号码是否合规
- 确保
$twilio_number是你在Twilio平台购买并激活的号码,格式必须带国际区号,比如+1234567890,不能只写本地号码。 - 这个号码得属于你当前用的Account SID对应的账户,别拿其他账户的号码来用,肯定不认。
3. 补全代码里的缺失参数
看你的代码片段,'from' => $t...明显是截断了,完整的应该是'from' => $twilio_number,而且还得加上必填的短信内容参数,不然请求也会出问题。修正后的代码大概是这样:
return $client->messages->create( $data['phone'], array( 'from' => $twilio_number, 'body' => '这里填你要发送的短信内容' ) );
4. 排查网络环境的干扰
- 如果你的服务器在防火墙或者公司内网里,得确认允许向
api.twilio.com发起HTTPS请求,端口443必须开放。 - 要是服务器用了代理或者VPN,得检查是不是这些工具修改了请求的Authorization头——Twilio SDK会自动处理身份验证头,但网络环境乱改的话,就会导致验证失败。
5. 用curl快速验证凭据有效性
不想改代码测试的话,可以直接用curl命令测试你的凭据能不能正常访问Twilio API:
curl -u "你的Account SID:你的Auth Token" https://api.twilio.com/2010-04-01/Accounts.json
如果返回了你的账户信息,那凭据没问题;要是还是401,那肯定是凭据错了,回去控制台重新复制一遍。
内容的提问来源于stack exchange,提问作者Abeera
相关产品推荐
相关产品推荐

