在PHP中发送短信:用于快速集成的API库
发送短信仍然是通知用户最可靠的方式之一:订单确认、双因素认证、事件提醒。对于PHP,有许多现成的库可以简化通过其API与短信提供商的协作。在本文中,我们将介绍流行的解决方案、它们的安装方法以及发送消息的代码示例。
为什么要使用库来发送短信?
手动处理对短信网关API的HTTP请求需要编写大量样板代码:构建请求头、错误处理、JSON/XML处理、状态检查。现成的库可以承担这些任务,提供简洁的面向对象接口。这可以加快开发速度并降低出错的可能性。
用于在PHP中发送短信的流行库
库的选择取决于所使用的短信提供商。我们来看两个流行的选项:
- Twilio PHP SDK – 用于与Twilio协作的官方库。支持发送短信、语音通话、号码验证。
- SMS Aero PHP SDK – 用于俄罗斯服务SMS Aero的库。允许发送消息、检查余额、获取统计数据。
通过Composer安装
大多数现代PHP库通过Composer安装。在终端中执行:
composer require twilio/sdk对于SMS Aero:
composer require sms-aero/sms-aero-php安装后,在您的脚本中引入自动加载器:
require_once 'vendor/autoload.php';通过Twilio发送短信的示例
要使用Twilio,您需要Account SID和Auth Token(在Twilio控制台中找到)。代码示例:
<?phprequire_once 'vendor/autoload.php';
use Twilio\\Rest\\Client;
$sid = "您的_account_sid";$token = "您的_auth_token";$twilio = new Client($sid, $token);
$message = $twilio->messages ->create( "+71234567890", // 接收者号码 [ "from" => "+12345678901", // 发送者号码(从Twilio购买) "body" => "你好!这是来自PHP的测试短信。" ] );
echo "消息已发送。ID: " . $message->sid;?>如果成功,create()方法会返回一个包含消息信息的对象。如果出错,会抛出TwilioException异常。
通过SMS Aero发送短信的示例
对于俄罗斯服务SMS Aero,需要邮箱和API密钥。示例:
<?phprequire_once 'vendor/autoload.php';
use SmsAero\\SmsAeroClient;
$client = new SmsAeroClient('您的_email@example.com', '您的_api_key');
try { $response = $client->sendSms( '71234567890', '消息文本', 'SENDER_NAME' // 在服务中注册的发送者名称 ); echo "短信已发送。ID: " . $response->id;} catch (Exception $e) { echo "错误: " . $e->getMessage();}?>sendSms()方法返回一个包含投递状态、消息ID和余额的响应对象。
库的主要功能
- 发送单条和批量短信 – 可以发送一条消息或一个号码列表。
- 检查投递状态 – 通过消息ID查询状态。
- 管理发送者 – 注册和选择发送者名称。
- 使用模板 – 对于某些提供商,可以使用预定义的消息模板。
- 余额和统计 – 获取当前余额和报告。