def send_mess(): try: # 腾讯云SecretId和SecretKey cred = credential.Credential("AKIDMXYsLYeEjxwyXtunQmwqY5RWLv2wuyDE", "va1Nk0oZv54vXxh58j45qNdeSA8uRwfR") httpProfile = HttpProfile() httpProfile.endpoint = "sms.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = sms_client.SmsClient(cred, "ap-shanghai", clientProfile) req = models.SendSmsRequest() # 设置发送的手机号,发送短信的模板id,发送短信的签名 params = '{\"PhoneNumberSet\":[\"+8613792315475\",\"+8613125018788\"],\"TemplateID\":\"615569\",\"Sign\":\"zhenwei网\",\"SmsSdkAppid\":\"1400373765\"}' req.from_json_string(params) # 发送短信 resp = client.SendSms(req) # 打印成功之后的发送信息 print(resp.to_json_string()) except TencentCloudSDKException as err: # 如果发送遇到错误,则打印错误输出信息 print(err)
def sendMessage(phone, Code): try: clientProfile = ClientProfile() cred = credential.Credential(settings.TENT['SECRET_KEY'], settings.TENT["SECRET_ID"]) client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) req = models.SendSmsRequest() # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = "1400304791" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "文轩的学习档案" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [phone] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "517488" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [Code] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 print(resp.to_json_string(indent=2)) except TencentCloudSDKException as err: print(err)
def send_phone_access(phone, code): secret_id = getattr(settings, 'TENCENT_CLOUD_SECRETID') secret_key = getattr(settings, 'TENCENT_CLOUD_SECRETKEY') sms_appid = getattr(settings, 'SMS_APPID_TENCENT') sms_tplid = getattr(settings, 'SMS_TPL_ID_TENCENT') sms_tpl_sign = getattr(settings, 'SMS_TPL_SIGN_TENCENT') if not secret_id or not secret_key: logger.error('TENCENT CLOUD 配置错误') return False, 404 if not sms_appid or not sms_tplid or not sms_tpl_sign: logger.error('TENCENT SMS 配置错误') return False, 404 try: cred = credential.Credential(secret_id, secret_key) http_profile = HttpProfile() http_profile.endpoint = "sms.tencentcloudapi.com" client_profile = ClientProfile() client_profile.httpProfile = http_profile client = sms_client.SmsClient(cred, "", client_profile) req = sms_models.SendSmsRequest() req.SmsSdkAppid = sms_appid req.Sign = sms_tpl_sign req.ExtendCode = "" req.SenderId = "" req.PhoneNumberSet = ["+86" + phone] req.TemplateID = sms_tplid req.TemplateParamSet = [code] resp = client.SendSms(req) if resp.SendStatusSet[0].Code != 'Ok': logger.error(resp.to_json_string()) return False, 404 return True, code except TencentCloudSDKException as e: logger.error(e)
def sms_callback(phone): """运营服务商发送短信callback""" try: cred = credential.Credential(settings.SMS_SECRET_ID, settings.SMS_SECRET_KEY) http_profile = HttpProfile() http_profile.endpoint = "sms.tencentcloudapi.com" client_profile = ClientProfile() client_profile.httpProfile = http_profile client = sms_client.SmsClient(cred, "", client_profile) req = models.SendSmsRequest() phone_number = phone sms_code = '%06d' % random.randint(0, 999999) print("手机验证码", sms_code) expire_in = "1" # min params = { "PhoneNumberSet": ["+86" + str(phone_number)], "TemplateParamSet": [sms_code, expire_in], "TemplateID": settings.SMS_TEMPLATE_ID, "SmsSdkAppid": settings.SMS_SDK_APP_ID, "Sign": settings.SMS_SIGN } req.from_json_string(json.dumps(params)) resp = client.SendSms(req) if json.loads( resp.to_json_string())["SendStatusSet"][0]["Code"] == "Ok": return sms_code except TencentCloudSDKException as err: print(err)
def sendsms(phone, randomCode, TemplateID="517554"): try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。 # 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。 # 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人, # 以免泄露密钥对危及你的财产安全。 # CAM密匙查询: https://console.cloud.tencent.com/cam/capi cred = credential.Credential(settings.TENCENT_SECRET_ID, settings.TENCENT_SECRET_KEY) # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, settings.TENCENT_CITY) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 你可以直接查询SDK源码确定SendSmsRequest有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。 # SDK提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = settings.TENCENT_APP_ID # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = settings.TENCENT_SIGN # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = ["+86%s" % phone] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = TemplateID # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [randomCode] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) if resp.SendStatusSet[0].Fee: return True # 输出json格式的字符串回包 print(resp.to_json_string(indent=2)) return False except TencentCloudSDKException as err: print(err)
def login(): # if request.method == 'POST': # 获取通过url请求传参的数据 Phone = request.form.get("Phone") Code = request.form.get("Code") print('Phone') # 获取url请求传的密码,明文 try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey # 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值 # 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人 # CAM 密钥查询:https://console.cloud.tencent.com/cam/capi cred = credential.Credential("AKIDDBub3vFl6DZfaGe26B0cy6yb7d1Arcvy", "zkEgy1pIWUBdQy291tWhlYooZ5uVt1u4") # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化一个 http 选项,可选,无特殊需求时可以跳过 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # POST 请求(默认为 POST 请求) httpProfile.reqTimeout = 30 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) # # 非必要步骤: # # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) req = models.SendSmsRequest() req.SmsSdkAppid = "1400464331" # # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 req.Sign = "JiuKey" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "xxx" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [Phone] # 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID req.TemplateID = "818049" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [Code] # # 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的 resp = client.SendSms(req) # 输出 JSON 格式的字符串回包 print(resp.to_json_string(indent=2)) return Phone except TencentCloudSDKException as err: print(err) return 'success'
def sendSMS(code, due): try: # CAM密匙查询: https://console.cloud.tencent.com/cam/capi cred = credential.Credential("*********", "*********") # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) req = models.SendSmsRequest() # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-shanghai") # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = "0000000000" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "腾讯云" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "xxx" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = ["+8611111111111"] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "555555" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [code, due] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 return resp.to_json_string(indent=2) except TencentCloudSDKException as err: print(err) return ""
def send(self, content, target): mobile_no = format_mobile_no(target) template_id = TEMPLATES.get(target('template_id')) params = '{"PhoneNumberSet":["%s"],"TemplateID":"%s","Sign":"%s","TemplateParamSet":["%s"],"SmsSdkAppid":"%s"}'\ % (mobile_no, template_id, SIGNATURE, content, SMS_APP_ID) try: req = models.SendSmsRequest() req.from_json_string(params) resp = self._client.SendSms(req) result = resp.to_json_string() logger.info(result) return result except TencentCloudSDKException as err: logger.error(err)
def tencent_send_msg(phone, ret_num, template_id): try: cred = credential.Credential(settings.SecretId, settings.SecretKey) client = sms_client.SmsClient(cred, "ap-guangzhou") req = models.SendSmsRequest() req.SmsSdkAppid = settings.SmsSdkAppid req.Sign = settings.Sign req.ExtendCode = "" req.SenderId = "" req.PhoneNumberSet = ["+86%s" % phone] req.TemplateID = template_id req.TemplateParamSet = [ret_num] resp = client.SendSms(req) except TencentCloudSDKException as err: print(err)
def send_china_msg(phone, code): """ 发送短信 :param code:短信验证码,如:86 :param phone: 手机号,示例:"15131255555" :return: """ import ssl ssl._create_default_https_context = ssl._create_unverified_context response = BaseResponse() try: phone = "{}{}".format("+86", phone) cred = credential.Credential("AKIDW3Rgszw84ylQxMzNn7KOJ6kFPSL5c5MU", "GQSMXmtsjR0QhuIalzTp250nU6digZSD") client = sms_client.SmsClient(cred, "ap-guangzhou") req = models.SendSmsRequest() req.SmsSdkAppid = "1400302209" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "Python之路" # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [ phone, ] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "516680" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [ code, ] resp = client.SendSms(req) response.message = resp.SendStatusSet[0].Message if resp.SendStatusSet[0].Code == "Ok": response.status = True except TencentCloudSDKException as err: response.message = err.message return response
def send_message(phone, random_code): ''' 下面的配置最好写在settings里 :param phone: :param random_code: :return: ''' try: phone = '{}{}'.format("+86", phone) cred = credential.Credential("AKIDkGlz4tb2i8GAqSosgHdiZElHafX9bbPI", "nKtDmsncS4QVUEispiNmvue8QSO5WhiU") client = sms_client.SmsClient(cred, "ap-beijing") req = models.SendSmsRequest() # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = "1400320908" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "乔晓强个人公众号" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [ phone, ] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "541725" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [ random_code, ] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 if resp.SendStatusSet[0].Code == 'Ok': return True # print(resp.to_json_string(indent=2)) except TencentCloudSDKException as err: # print(err) pass
def send_china_msg(phone, code): """ 发送短信 :param code:短信验证码,如:86 :param phone: 手机号,示例:"15131255555" :return: """ import ssl ssl._create_default_https_context = ssl._create_unverified_context response = BaseResponse() try: phone = "{}{}".format("+86", phone) code = "{}".format(code) print(phone, code) cred = credential.Credential(settings.TENCENT_SECRET_ID, settings.TENCENT_SECRET_KEY) client = sms_client.SmsClient(cred, settings.TENCENT_CITY) req = models.SendSmsRequest() req.SmsSdkAppid = settings.TENCENT_APP_ID # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = settings.TENCENT_SIGN # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [ phone, ] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "888188" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [ code, ] resp = client.SendSms(req) response.message = resp.SendStatusSet[0].Message if resp.SendStatusSet[0].Code == "Ok": response.status = True except TencentCloudSDKException as err: response.message = err.message return response
def send_china_msg(phone, code): """ 发送短信 :param code:短信验证码,如:86 :param phone: 手机号,示例:"13335913629" :return: """ import ssl ssl._create_default_https_context = ssl._create_unverified_context response = BaseResponse() try: phone = "{}{}".format("+86", phone) cred = credential.Credential(COS_SECRET_ID, COS_SECRET_KEY) client = sms_client.SmsClient(cred, "ap-guangzhou") req = models.SendSmsRequest() req.SmsSdkAppid = "1400397656" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "共享绘本测试" # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [ phone, ] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "661624" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [ code, ] resp = client.SendSms(req) print(resp) response.message = resp.SendStatusSet[0].Message if resp.SendStatusSet[0].Code == "Ok": response.status = True except TencentCloudSDKException as err: response.message = err.message return response
def send_sms(telephone, captcha): cred = credential.Credential("AKIDb0A8qIqRkpfFYczD7lCNuC8pGRL0bnIX", "81hBOK0TDixNZVDgIgxxjGWUC9rISMhm") http_profile = HttpProfile() http_profile.endpoint = "sms.tencentcloudapi.com" client_profile = ClientProfile() client_profile.httpProfile = http_profile client = sms_client.SmsClient(cred, "", client_profile) req = models.SendSmsRequest() params = '{"PhoneNumberSet":["+86%s"],"TemplateID":"511960","Sign":"chaobbstop网站","TemplateParamSet":["%s"],"SmsSdkAppid":"1400302167"}' % ( telephone, captcha) req.from_json_string(params) resp = client.SendSms(req) result = json.loads(resp.to_json_string())["SendStatusSet"][0]["Code"] if result == "Ok": return True else: return False
def SendSMS(Time, Hostname, Message): try: cred = credential.Credential("APIkey", "APIsecret") httpProfile = HttpProfile() httpProfile.endpoint = "sms.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = sms_client.SmsClient(cred, "ap-shanghai", clientProfile) req = models.SendSmsRequest() PhoneNumber = "your_phone_number" TemplateID = "your_templateID" Arg1 = Time Arg2 = Hostname Arg3 = Message params = '{"PhoneNumberSet":["+86' + PhoneNumber + '"],"TemplateID":"' + TemplateID + '","Sign":"your_sms_sign","TemplateParamSet":[" ' + Arg1 + ' "," ' + Arg2 + ' "," ' + Arg3 + ' "],"SmsSdkAppid":"1400071610"}' req.from_json_string(params) resp = client.SendSms(req) print(resp.to_json_string()) except TencentCloudSDKException as err: print(err)
def Sendcode(phone, code): # -*- coding: utf-8 -*- from tencentcloud.common import credential from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException # 导入对应产品模块的client models。 from tencentcloud.sms.v20190711 import sms_client, models try: phone = f'+86{phone}' code = str(code) cred = credential.Credential("secretid", "secretkey") client = sms_client.SmsClient(cred, "ap-guangzhou") # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 你可以直接查询SDK源码确定SendSmsRequest有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() req.SmsSdkAppid = "" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.PhoneNumberSet = [phone] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = "" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [code] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 print(resp.to_json_string(indent=2)) except TencentCloudSDKException as err: print(err)
def send(self, phones, template_id=None, params=None): """ 发送短信 :param phone: 电话号码 :param template_id: 短信模版ID :param params: 短信模版参数:["", ""]数组类型 :return: """ # 默认是短信注册验证模版 if template_id is None: template_id = self.template_id # 短息模版参数 if params is None: code = self._get_verify_code() params = [code, "1"] else: code = '' try: client = sms_client.SmsClient(self.cred, "ap-guangzhou") req = models.SendSmsRequest() req.SmsSdkAppid = settings.MESSAGE_APP_ID req.Sign = settings.MESSAGE_SIGN req.TemplateID = template_id # 模版ID req.TemplateParamSet = params # 模版参数 req.PhoneNumberSet = phones resp = client.SendSms(req) ten_res = resp.to_json_string(indent=2) json_res = json.loads(ten_res) send_status = json_res.get('SendStatusSet') logger.info('time:{}, send message:{}'.format(datetime.datetime.now(), json_res)) # 存储数据 if send_status[0].get('Code') == 'Ok': return True, code except TencentCloudSDKException as err: logger.error('time:{}, send message error:{}'.format(datetime.datetime.now(), err)) return False, None
def send_sms(content, phones): try: logger.info(f"========{content}") secret_id, secret_key = __acquire_sms_config() cred = credential.Credential(secret_id, secret_key) # 实例化要请求产品(以cvm为例)的client对象 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # post请求(默认为post请求) httpProfile.reqTimeout = 30 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile client = sms_client.SmsClient(cred, "ap-beijing", clientProfile) # 实例化一个请求对象 req = models.SendSmsRequest() req.SmsSdkAppid = "1400301649" req.Sign = "爱极客" req.PhoneNumberSet = phones req.TemplateID = "599228" req.TemplateParamSet = content resp = client.SendSms(req) result = resp.to_json_string(indent=2) print(resp.to_json_string(indent=2)) for status in json.loads(resp.to_json_string(indent=2)).get( "SendStatusSet", {}): # 现在只发送一条短信数据 code = status.get("Code") if code.lower() == "ok": break else: return False return True except Exception as e: print(e) return False
def send_sms(self, code, mobile): """ 发送短信 :param code: 验证码 :param mobile: 手机号,例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号 :return: """ try: client = sms_client.SmsClient(self.cred, "ap-beijing", self.clientProfile) req = models.SendSmsRequest() req.TemplateID = "543954" req.PhoneNumberSet = [str("+86" + mobile)] req.Sign = "然小狼" req.TemplateParamSet = [code] req.SmsSdkAppid = "1400324019" resp = client.SendSms(req) re_dict = json.loads(resp.to_json_string()) return re_dict except TencentCloudSDKException as err: print(err) pass
def tencent_send(phone_num): try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey # 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值 # 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人 # CAM 密钥查询:https://console.cloud.tencent.com/cam/capi # cred = credential.Credential("secretId","secretKey") cred = credential.Credential(os.environ.get("secretId"), os.environ.get("secretKey")) # print(os.environ.get("secretId")) verify_code = str(int((random.uniform(0, 1) * 9 + 1) * 100000)) phone = '+86' + phone_num # 实例化一个 http 选项,可选,无特殊需求时可以跳过 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # POST 请求(默认为 POST 请求) httpProfile.reqTimeout = 30 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) # 非必要步骤: # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile # 实例化 SMS 的 client 对象 # 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 您可以直接查询 SDK 源码确定 SendSmsRequest 有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用 IDE 进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK 采用的是指针风格指定参数,即使对于基本类型也需要用指针来对参数赋值 # SDK 提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台:https://console.cloud.tencent.com/smsv2 # sms helper:https://cloud.tencent.com/document/product/382/3773 # 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID,例如1400006666 req.SmsSdkAppid = "1400401547" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 req.Sign = "瑞选网" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "xxx" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [ phone, ] # 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID req.TemplateID = "665620" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [ verify_code, ] # 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的 resp = client.SendSms(req) # 输出 JSON 格式的字符串回包 re_data = json.loads(resp.to_json_string(indent=2)) print(re_data) if resp and re_data.get('SendStatusSet')[0].get('Code') == 'Ok': return verify_code else: return None # if re_data.get('code') == 2: # return verify_code # else: # return None except TencentCloudSDKException as err: print(err)
def prepare_send_sms(sdk_id: str, template_id='881535', sign: str = '浩轩陈皮') -> models.SendSmsRequest: req = models.SendSmsRequest() req.SmsSdkAppid = sdk_id req.Sign = sign req.TemplateID = template_id return req
def send_sms(mobile=None, code=None): """发送短信""" try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey # 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值 # 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人 # CAM 密钥查询:https://console.cloud.tencent.com/cam/capi cred = credential.Credential(TENCENT_SECRETID, TENCENT_SECRETKEY) ssl._create_default_https_context = ssl._create_unverified_context # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化一个 http 选项,可选,无特殊需求时可以跳过 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # POST 请求(默认为 POST 请求) httpProfile.reqTimeout = 60 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) # 非必要步骤: # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile # 实例化 SMS 的 client 对象 # 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 您可以直接查询 SDK 源码确定 SendSmsRequest 有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用 IDE 进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK 采用的是指针风格指定参数,即使对于基本类型也需要用指针来对参数赋值 # SDK 提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台:https://console.cloud.tencent.com/smsv2 # sms helper:https://cloud.tencent.com/document/product/382/3773 # 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID,例如1400006666 req.SmsSdkAppid = TENCENT_SMSSDKAPPID # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 req.Sign = TENCENT_SIGN # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "xxx" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = ["+86" + mobile] # 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID req.TemplateID = TENCENT_TEMPLATEID # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [code] # 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的 resp = client.SendSms(req) # 输出 JSON 格式的字符串回包 logger.info(resp.to_json_string(indent=2)) except TencentCloudSDKException as err: logger.info(err)
# 非必要步骤: # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 你可以直接查询SDK源码确定SendSmsRequest有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。 # SDK提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = "1400787878" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "xxx" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回
def send_notification(params, phone='+8618861805533', template='success'): try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。 # 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。 # 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人, # 以免泄露密钥对危及你的财产安全。 # CAM密匙查询: https://console.cloud.tencent.com/cam/capi cred = credential.Credential(appid, appsecret) # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化一个http选项,可选的,没有特殊需求可以跳过。 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # post请求(默认为post请求) httpProfile.reqTimeout = 30 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) # 非必要步骤: # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 你可以直接查询SDK源码确定SendSmsRequest有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。 # SDK提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = "1400351701" # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "徐浩宇的主页" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [phone] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 if template == 'success': req.TemplateID = "578337" elif template == 'error': req.TemplateID = "577893" # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = params # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 print(resp.to_json_string(indent=2)) except TencentCloudSDKException as err: print(err)
def send_sms(phone_number, code, minute): try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。 # 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。 # 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人, # 以免泄露密钥对危及你的财产安全。 # CAM密匙查询: https://console.cloud.tencent.com/cam/capi cred = credential.Credential(secret_id, secret_key) # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化一个http选项,可选的,没有特殊需求可以跳过。 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # post请求(默认为post请求) httpProfile.reqTimeout = 30 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) # 非必要步骤: # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 你可以直接查询SDK源码确定SendSmsRequest有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。 # SDK提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 以下信息根据需要进行更改 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = SmsSdkAppid # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = SmsSign # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "123456" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 phone_number = "+86" + str(phone_number) req.PhoneNumberSet = [phone_number] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = SmsTemplateID # 模板参数: 若无模板参数,则设置为空 验证码 验证时间 req.TemplateParamSet = [str(code), str(minute)] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 # print(resp.to_json_string(indent=2).get("SendStatusSet").get("Code")) """ {'SendStatusSet': [{'SerialNo': '2019:2486505420595011479', 'PhoneNumber': '+86135555555', 'Fee': 1, 'SessionContext': '123456', 'Code': 'Ok', 'Message': 'send success'}], 'RequestId': '21a4489f-f873-4115-bc08-1aaa5c8aa91c'} """ code = json.loads(resp.to_json_string(indent=2)) data = code.get("SendStatusSet")[0].get("Code") return data except TencentCloudSDKException as err: print(err) return "Error"
def send_vcode_sms(tel, code): try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。 # 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。 # 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人, # 以免泄露密钥对危及你的财产安全。 # CAM密匙查询: https://console.cloud.tencent.com/cam/capi cred = credential.Credential(TencentCloud_SecretId, TencentCloud_SecretKey) # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化一个http选项,可选的,没有特殊需求可以跳过。 httpProfile = HttpProfile() httpProfile.reqMethod = "POST" # post请求(默认为post请求) httpProfile.reqTimeout = 30 # 请求超时时间,单位为秒(默认60秒) httpProfile.endpoint = "sms.tencentcloudapi.com" # 指定接入地域域名(默认就近接入) # 非必要步骤: # 实例化一个客户端配置对象,可以指定超时时间等配置 clientProfile = ClientProfile() clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法 clientProfile.language = "en-US" clientProfile.httpProfile = httpProfile # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, "ap-guangzhou", clientProfile) # 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 # 你可以直接查询SDK源码确定SendSmsRequest有哪些属性可以设置 # 属性可能是基本类型,也可能引用了另一个数据结构 # 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 req = models.SendSmsRequest() # 基本类型的设置: # SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。 # SDK提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = SMS_SmsSdkAppid # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = "王冬代码练习" # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = ["+86%s" % tel] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = SMS_TemplateID # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [code, variable.VERIFY_CODE_EXPIRE_TIME_CN] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 print(resp.to_json_string()) if resp.SendStatusSet[0].Code == "Ok" and resp.SendStatusSet[ 0].Message == "send success": return True else: # 发送失败,则打日志 logger.warning( "tel:%s || vote:%s || RequestId:%s" % (tel, resp.SendStatusSet[0].Message, resp.RequestId)) return resp.SendStatusSet[0].Message except TencentCloudSDKException as err: # 报错,则打日志 logger.error("tel:%s || vote:%s" % (tel, str(err))) print(err) # 示例正常的返回值 res 的值 """ { "SendStatusSet": [ { "SerialNo": "2019:538884*********", "PhoneNumber": "+86182********", "Fee": 1, "SessionContext": "", "Code": "Ok", "Message": "send success" } ], "RequestId": "bf0d639e-9956-4366-be0f-a23001900ce0" } """ return '发送失败,未知原因'
def send_msg(phone, random_code, template_id="746429"): """ 发送短信验证码 1.注册腾讯云账号,开通腾讯云短信 2.创建应用 腾讯云SDK AppId = 1400436568 3.申请签名(个人: 公众号) ID 名称 318557 笑清风 4.申请模板 ID 名称 746429 小程序测试 5.申请腾讯云API https://console.cloud.tencent.com/cam/capi SecretId Secretkey 6.调用相关接口发送短信 SDK, 写好的工具 """ # 导入可选配置类 from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile try: # 必要步骤: # 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。 # 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。 # 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人, # 以免泄露密钥对危及你的财产安全。 # CAM密匙查询: https://console.cloud.tencent.com/cam/capi CHINA = "+86" phone = "{}{}".format(CHINA, phone) cred = credential.Credential(settings.TENCENT_SECRET_ID, settings.TENCENT_SECRET_KEY) # cred = credential.Credential( # os.environ.get(""), # os.environ.get("") # ) # 实例化要请求产品(以sms为例)的client对象 # 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 client = sms_client.SmsClient(cred, settings.TENCENT_CITY) req = models.SendSmsRequest() # 基本类型的设置: # SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。 # SDK提供对基本类型的指针引用封装函数 # 帮助链接: # 短信控制台: https://console.cloud.tencent.com/sms/smslist # sms helper: https://cloud.tencent.com/document/product/382/3773 # 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 req.SmsSdkAppid = settings.TENCENT_APP_ID # 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 req.Sign = settings.TENCENT_SIGN # 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] req.ExtendCode = "" # 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 req.SessionContext = "xxx" # 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] req.SenderId = "" # 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] # 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 req.PhoneNumberSet = [ phone, ] # 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 req.TemplateID = template_id # 模板参数: 若无模板参数,则设置为空 req.TemplateParamSet = [ f"{random_code}", ] # 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的。 # 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应。 resp = client.SendSms(req) # 输出json格式的字符串回包 if resp.SendStatusSet[0].Code == "Ok": return True print(resp.to_json_string(indent=2)) except TencentCloudSDKException as err: print(err)