腾讯云短信使用

发布时间 2023-06-25 15:13:08作者: Gentry-Yang
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.sms.v20210111 import sms_client, models

SECRET_ID = 'AKIDqhYUJxQlwxoU1OpT4fB5y9KNKBINQdzR'
SECRET_KEY = 'Z0SE0dAasBRbp7WuKnNB556CD8ueNyR'
APP_ID = '1400832175'
SIGN_NAME = '编程活力公众号'
TEMPLATE_ID = '1842855'


def send_sms_code(mobile: str, code: str, express: str):
    try:
        cred = credential.Credential(SECRET_ID, SECRET_KEY)
        # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,
        # 支持的地域列表参考 https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8
        client = sms_client.SmsClient(cred, "ap-guangzhou")

        # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
        req = models.SendSmsRequest()
        # 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666
        # 应用 ID 可前往 [短信控制台](https://console.cloud.tencent.com/smsv2/app-manage) 查看
        req.SmsSdkAppId = APP_ID
        # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名
        req.SignName = SIGN_NAME
        # 模板 ID: 必须填写已审核通过的模板 ID
        req.TemplateId = TEMPLATE_ID
        # 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,,若无模板参数,则设置为空
        req.TemplateParamSet = [code]
        # 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
        # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号
        req.PhoneNumberSet = [f"+86{mobile}"]
        # 用户的 session 内容(无需要可忽略): 可以携带用户侧 ID 等上下文信息,server 会原样返回
        req.SessionContext = ""

        resp = client.SendSms(req)

        # 输出json格式的字符串回包
        print(resp.to_json_string(indent=2))
        return True, "短信发送成功"

    except TencentCloudSDKException as err:
        return False, err


print(send_sms_code('19511312873', "9958", '1'))