最近需要在一个tp5.1项目中使用腾讯云SDK,研究了好久,终于搞定,记录一下
首先打开应用根目录,使用composer安装腾讯云的短信SDK:
PHP
composer require qcloudsms/qcloudsms_php
安装完成后,会有 “ 应用根目录/vendor/qcloudsms/qcloudsms_php/src ”这样的目录结构,那么依照官方文档,在需要使用的控制器下写入如下代码即可运行(以单发短信为例):
PHP
<?php
use Qcloud\Sms\SmsSingleSender;
class Sms extends Controller
{
public function sms()
{
// 短信应用 SDK AppID
$appid = 1400009099; // SDK AppID 以1400开头
// 短信应用 SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 短信模板 ID,需要在短信控制台中申请
$templateId = 7839; // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
$smsSign = "腾讯云"; // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台申请
try {
$ssender = new SmsSingleSender($appid, $appkey);
$result = $ssender->send(0, "86", $phoneNumbers[0],
"【腾讯云】您的验证码是: 5678", "", "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
}
}
但是这么运行会出错,tp框架提示无法找到对应的Qcloud\Sms\SmsSingleSender类,原因是我们没有引入相应的文件,因此需要在use之前引入文档中所述的index.php文件:
PHP
require __DIR__."/../../../vendor/qcloudsms/qcloudsms_php/src/index.php";
这是在tp5.1框架下控制器中引用腾讯云短信SDK的语句,当SDK文件目录不同时,要相应的调整require的文件目录,当上面这句代码被放入use语句之前后,程序即正常运行。