纯PHP调用Twilio API发送短信提示Credentials are required报错如何解决
报错根因
报错日志明确显示实例化Twilio Client时传入的两个参数均为空字符串,核心问题是你代码中使用getenv()读取环境变量取值,原生PHP默认不会自动加载项目目录下的环境变量配置文件,这就是相同配置Python可正常运行、PHP报错的差异点:Python项目通常会默认加载.env文件内的环境变量,原生PHP没有该能力。
解决方案
方案1:临时测试直接赋值(仅调试用,生产环境禁止硬编码密钥)
直接将你获取到的Twilio账号SID和Auth Token直接赋值给变量,替换原有getenv两行代码即可:
// 替换为你自己的实际凭证 $sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
修改后直接运行即可验证功能是否正常。
方案2:规范使用环境变量加载(推荐生产使用)
原生PHP需要借助第三方库加载.env文件的配置,操作步骤如下:
- 通过composer安装dotenv依赖
composer require vlucas/phpdotenv - 在项目根目录创建
.env文件,写入你的凭证:TWILIO_ACCOUNT_SID=你的实际账号SID TWILIO_AUTH_TOKEN=你的实际Auth Token - 在原有代码的
require_once 'vendor/autoload.php';后新增环境变量加载逻辑:$dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); - 额外检查:如果修改后还是读取不到值,打开XAMPP的php.ini配置文件,找到
variables_order配置项,修改为variables_order = "EGPCS",保存后重启Apache即可。
内容的提问来源于stack exchange,提问作者SmukasPlays77
相关产品推荐
相关产品推荐

