通过PHP发送短信:API库集成概述

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

通过PHP发送短信:API库概述与集成示例

发送短信功能对于Web应用仍然非常实用:双因素认证、订单通知、营销推送。在PHP中,这个问题通过第三方服务的API来解决。在本文中,我们将介绍流行的库、它们的安装方法,并提供可运行的代码示例。



1. 热门服务及其PHP库

服务提供商的选择取决于地区、价格和送达要求。我们来看三个选项:

  • Twilio — 国际领导者,提供PHP的SDK(twilio/sdk)。适用于全球项目。
  • SMS Aero — 俄罗斯服务,拥有简单的REST API和官方PHP库。
  • smsc.ru — 另一个受欢迎的俄罗斯服务,费率低,有现成的脚本。


2. 通过Composer安装

大多数现代库通过Composer安装。以Twilio为例:

composer require twilio/sdk

对于SMS Aero,使用:

composer require smsaero/smsaero-php

如果您使用smsc.ru,可以不用Composer — 只需从GitHub复制他们的PHP类即可。



3. 通过Twilio发送短信示例

Twilio库需要Account SID和Auth Token,您可以在个人账户中获取。

<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

// 您的数据$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";$token = "your_auth_token";$twilio = new Client($sid, $token);

// 发送短信$message = $twilio->messages ->create( "+71234567890", // 接收方号码 [ "from" => "+15017122661", // 发送方号码(在Twilio购买) "body" => "你好!这是来自Twilio的测试短信。" ] );

echo "短信已发送!SID: " . $message->sid;?>


4. 通过SMS Aero发送短信(REST API)

SMS Aero使用API密钥和登录名。该库提供了便捷的接口:

<?phprequire_once 'vendor/autoload.php';

use Smsaero\\Smsaero;

$client = new Smsaero('your_email@example.com', 'your_api_key');

// 发送消息$response = $client->send('71234567890', '来自SMS Aero的测试消息');

if ($response->success) { echo "短信已发送。ID: " . $response->id;} else { echo "错误: " . $response->error;}?>


5. 使用smsc.ru(无需Composer)

对于smsc.ru,您可以直接使用HTTP请求或他们的现成类。通过cURL的简单示例:

<?php$login = "your_login";$password = "your_password";$phones = "71234567890";$message = "来自smsc.ru的问候!";

$url = "https://smsc.ru/sys/send.php?login=" . urlencode($login) . "&psw=" . urlencode($password) . "&phones=" . urlencode($phones) . "&mes=" . urlencode($message) . "&fmt=3"; // fmt=3 — 返回JSON格式

$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);

$data = json_decode($response, true);if ($data['error'] ?? false) { echo "错误: " . $data['error'];} else { echo "短信已发送。ID: " . $data['id'];}?>


6. 错误处理与日志记录

发送短信时,正确处理错误非常重要。典型问题:

  • 凭据错误(401 Unauthorized)。
  • 账户余额不足。
  • 号码在黑名单中。
  • 超出发送限制。

Twilio的异常处理示例:

<?phptry {    $message = $twilio->messages->create(...);    // 记录成功    error_log("短信已发送: " . $message-&g                    

推荐