最近测试了一下短信发送功能,接入了腾讯的API.
微信扫码登录腾讯云https://cloud.tencent.com/, 扫码登录免去了实名认证的步骤:
在产品里选择短信:
如果简单测试一下,可以使用免费的,每个月有100条短信:
数量不够的话则需要购买了.
根据接口文档操作.
1 添加应用
添加应用获取 SDK AppID 和 App Key 。详细操作请参阅 添加应用。
2 创建签名
一个完整的短信由短信签名和短信正文内容两部分组成,短信签名规则详见 签名审核标准,详细操作请参阅 创建签名。
3 创建正文模版
短信正文模版规则详见 普通短信审核标准,详细操作请参阅 创建正文模版。
4 接入SDK
目前腾讯云短信为客户提供国内短信,国际短信,语音通知三大服务。
- 国内短信提供单发,群发,带模板 ID 单发,带模板 ID 群发以及短信回执与回复拉取。
- 国际短信可以直接使用国内单发接口,只需替换相应的国家码与手机号码。
- 语音通知目前支持语音验证码以及语音通知功能。
SDK 名称 | SDK 文档 | github 地址 |
---|---|---|
Java SDK | 短信 Java SDK 文档 | 短信 Java SDK |
PHP SDK | 短信 PHP SDK 文档 | 短信 PHP SDK |
Python SDK | 短信 Python SDK 文档 | 短信 Python SDK |
JavaScript SDK | 短信 Node.js SDK 文档 | 短信 Node.js SDK |
C# SDK | 短信 C# SDK 文档 | 短信 C# SDK |
5 下面以PHP测试为例,点击短信 PHP SDK
SDK 获取
短信 PHP SDK 在 Github 中的下载地址:短信 PHP SDK。
开发准备
1. 申请 SDK AppID 以及 App Key:
在开始本教程之前,您需要先获取 SDK AppID 和 App Key,如您尚未申请,请到 短信控制台 中添加应用。应用添加成功后您将获得 SDK AppID 以及 App Key。
注意:
SDK AppID 是以 14xxxxx 开头。
2. 申请签名:
下发短信必须携带签名,您可以在短信 控制台 中申请短信签名,详细申请操作参考 创建签名。
3. 申请模板:
下发短信内容必须经过审核,您可以在短信 控制台 中申请短信模板,详细申请操作参考 创建正文模板。
完成以上三项便可开始代码开发。
6 下载文件qcloudsms_php-master
在github上短信 PHP SDK已经有介绍如何使用,这里简单看下国内模板文字短信发送功能:
解压文件后,在src文件里可以看到各种功能的文件:
FileVoiceSender.php
index.php
SmsMobileStatusPuller.php
SmsMultiSender.php
SmsSenderUtil.php
SmsSingleSender.php
SmsStatusPuller.php
SmsVoicePromptSender.php
SmsVoiceVerifyCodeSender.php
TtsVoiceSender.php
VoiceFileUploader.php
文字短信使用的是SmsSingleSender.php 和 方法文件SmsSenderUtil.php
然后在demo/simple里打开app.php.
使用指定模板ID单发短信(其他方法暂时不用):
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 短信模板ID,需要在短信应用中申请
$templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
// 签名
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
// 指定模板ID单发短信
try {
$ssender = new SmsSingleSender($appid, $appkey);
$params = ["5678"];
$result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId,
$params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
echo "\n";
通过引用或者直接拷贝SmsSingleSender.php 和 SmsSenderUtil.php的方法代码到app.php里,并且按照要求修改id等信息就可以了.
7 发送频率限制
不同的套餐 发送频率都不一样, 如果不做限制或者接口被盗刷,就会导致应用AppID被运营商封掉,这一点很重要.