安装SDK
1、安装 Composer
Windows 环境:请访问 Composer 官网 下载安装包并进行安装,地址https://getcomposer.org/download/。
Linux环境:请运行一下代码

curl -sS https://getcomposer.org/installer | phpsudo mv composer.phar /usr/local/bin/composer
2、获取SDK文件
在禅道的www目录下,新建一个sms目录,命令行切到www/sms目录下,运行一下命令
composer require tencentcloud/tencentcloud-sdk-php
运行成功后,会天生一个vendor的文件夹以及多少文件
禅道短信类编写在module目录下,新建一个sms文件夹,个中按照禅道构造,新建一个lang文件夹和lang文件,以及model文件
1、zh-cn.php
<?php//实例化一个认证工具,入参须要传入腾讯云账户密钥对secretId,secretKey。$lang->sms->secretId = '';$lang->sms->secretKey = '';/ 短信运用ID: 短信SdkAppId在 [短信掌握台] 添加运用后天生的实际SdkAppId,示例如1400006666 /$lang->sms->SdkAppId = '';/ 短信署名内容: 利用 UTF-8 编码,必须填写已审核通过的署名,署名信息可登录 [短信掌握台] 查看 /$lang->sms->SignName = '';/ 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信掌握台] 查看 /$lang->sms->TemplateIdList['mb1'] = ''; $lang->sms->TemplateIdList['mb2'] = ''; $lang->sms->TemplateIdList['mb3'] = '';
secretId和secretKey
登录腾讯云掌握台,点击右上角你的头像,选择"访问管理”
选择API密钥管理,天生你的secretId和secretKey
SdkAppId登录腾讯云的掌握台,进入短信掌握台,选择运用列表,天生你的SdkAppId
SignName
登录腾讯云的掌握台,进入短信掌握台,选择署名管理,查阅你的署名,是内容这一列,千万不要弄成ID
TemplateIdList
登录腾讯云的掌握台,进入短信掌握台,选择正文模板管理,取出你要利用的模板ID,如果超过多个,可自定义key,value必须填入模板ID
2、model.php
<?php//sms testrequire_once '../../www/sms/vendor/autoload.php';// 导入对应产品模块的clientuse TencentCloud\Sms\V20210111\SmsClient;// 导入要要求接口对应的Request类use TencentCloud\Sms\V20210111\Models\SendSmsRequest;use TencentCloud\Common\Exception\TencentCloudSDKException;use TencentCloud\Common\Credential;// 导入可选配置类use TencentCloud\Common\Profile\ClientProfile;use TencentCloud\Common\Profile\HttpProfile;class smsModel extends model{ public function sendmessage($arr1,$arr2,$TemplateId) { / 必要步骤: 实例化一个认证工具,入参须要传入腾讯云账户密钥对secretId,secretKey。 这里采取的是从环境变量读取的办法,须要在环境变量中先设置这两个值。 你也可以直接在代码中写去世密钥对,但是小心不要将代码复制、上传或者分享给他人, 以免透露密钥对危及你的财产安全。 CAM密匙查询: https://console.cloud.tencent.com/cam/capi/ $cred = new Credential($this->lang->sms->secretId, $this->lang->sms->secretKey); //$cred = new Credential(getenv("TENCENTCLOUD_SECRET_ID"), getenv("TENCENTCLOUD_SECRET_KEY")); // 实例化一个http选项,可选的,没有分外需求可以跳过 $httpProfile = new HttpProfile(); // 配置代理 // $httpProfile->setProxy("https://ip:port"); $httpProfile->setReqMethod("GET"); // post要求(默认为post要求) $httpProfile->setReqTimeout(30); // 要求超时时间,单位为秒(默认60秒) $httpProfile->setEndpoint("sms.tencentcloudapi.com"); // 指定接入地域域名(默认就近接入) // 实例化一个client选项,可选的,没有分外需求可以跳过 //$clientProfile = new ClientProfile(); //$clientProfile->setSignMethod("TC3-HMAC-SHA256"); // 指定署名算法(默认为HmacSHA256) //$clientProfile->setHttpProfile($httpProfile); // 实例化要要求产品(以sms为例)的client工具,clientProfile是可选的 // 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 $client = new SmsClient($cred, "ap-guangzhou", $clientProfile); // 实例化一个 sms 发送短信要求工具,每个接口都会对应一个request工具。 $req = new SendSmsRequest(); / 添补要求参数,这里request工具的成员变量即对应接口的入参 你可以通过官网接口文档或跳转到request工具的定义处查看要求参数的定义 基本类型的设置: 帮助链接: 短信掌握台: https://console.cloud.tencent.com/smsv2 sms helper: https://cloud.tencent.com/document/product/382/3773 / / 短信运用ID: 短信SdkAppId在 [短信掌握台] 添加运用后天生的实际SdkAppId,示例如1400006666 / $req->SmsSdkAppId = $this->lang->sms->SdkAppId; / 短信署名内容: 利用 UTF-8 编码,必须填写已审核通过的署名,署名信息可登录 [短信掌握台] 查看 / $req->SignName = $this->lang->sms->SignName; / 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] / $req->ExtendCode = ""; / 下发手机号码,采取 E.164 标准,+[国家或地区码][手机号] 示例如:+8613711112222, 个中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号/ $req->PhoneNumberSet = $arr1; / 国际/港澳台短信 SenderId: 海内短信填空,默认未开通,如需开通请联系 [sms helper] / $req->SenderId = ""; / 用户的 session 内容: 可以携带用户侧 ID 等高下文信息,server 会原样返回 / $req->SessionContext = ""; / 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信掌握台] 查看 / $req->TemplateId = "$TemplateId"; / 模板参数: 若无模板参数,则设置为空/ $req->TemplateParamSet = $arr2; // 通过client工具调用SendSms方法发起要求。把稳要求方法名与要求工具是对应的 // 返回的resp是一个SendSmsResponse类的实例,与要求工具对应 $resp = $client->SendSms($req); // 输出json格式的字符串回包 //print_r($resp->toJsonString()); // 也可以取出单个值。 // 您可以通过官网接口文档或跳转到response工具的定义处查看返回字段的定义 //print_r($resp->TotalCount); return $resp; } }
$arr1便是手机号码数组,可以多个$arr2便是对应模板的变量数组,可以多个$TemplateId便是当前利用的模板ID
在任意的control文件里
$this->loadModel('sms');
然后布局短信传入参数,并利用短信类发送短信
$arr1 = array();$arr2 = array();//输入手机号码,如果每行一个号码,布局多行$arr1[]="手机号码";//如果本次利用的模板ID有多个变量参数,则变量赋值要都早多行$arr2[]="变量1";$arr2[]="变量2";$arr2[]="变量3" //传入$arr1和$arr2两个数组,同时传入要发送短信的模板ID$this->sms->sendmessage($arr1,$arr2,$this->lang->sms->TemplateIdList['mb1']);
至此,在禅道里如何集成腾讯云短信完毕!