当前位置: 首页 > 后端技术 > Python

pythontx_SDK3.0短信验证码sdk配置使用

时间:2023-03-26 11:41:42 Python

环境:python3.9pythonsdk3.0支持的python环境前期准备:创建短信签名,短信模板,申请,我就不赘述了,官网有攻略,按照提示一步步操作即可;sdk3.0验证使用的是密钥对,所以需要创建密钥对(https://console.cloud.tencent...)配置如下:其实官方已经给出了配置步骤完成了,因为是为了测试,没有太多的配置,增加了一些必要的配置,不重要的直接省略;我也是刚用过短信验证码的sdk,不太了解。这是一个pythonsdk,请给我你的建议;以模块的形式编写,使用方便,也可以直接单页写短信发送模块tx_sms/send.py:fromtencentcloud.commonimportcredentialfromtencentcloud.common.exception.tencent_cloud_sdk_exceptionimportTencentCloudSDKExceptionfromtencentcloud.sms.v20210111importsms_client,modelsfrom.importsettingsimportjsonimportrandom#获取四个随机验证码defget_code():s_code=''foriinrange(4):s_code+=str(random.randint(0,9))returns_code#发送短信,腾讯短信验证码sdk3.0defsend_message(telephone,code):try:telephone=f'+86{telephone}'#实例化认证对象,传入腾讯云账号密钥对cred=credential.Credential(settings.secretId,settings.secretKey)#第二个参数为区域信息,可直接填写写入字符串ap-guangzhou,支持地区列表参见https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8client=sms_client.SmsClient(cred,"ap-guangzhou")#实例化一个请求对象。根据调用接口和实际情况,可以进一步设置请求参数req=models.SendSmsRequest()params={"PhoneNumberSet":[telephone,],#发送手机号码,采用E.164标准,+[国家或地区代码][手机号码]"SmsSdkAppId":settings.appid,#短信应用ID"SignName":settings.sms_sign,#短信签名内容"TemplateId":settings.template_id,#模板ID"TemplateParamSet":[code,settings.Exp_interval],#模板参数}req.from_json_string(json.dumps(params))resp=client.SendSms(req)#输出json格式字符串返回包print(resp.to_json_string(indent=2))ifresp:returnTrueelse:returnFalseexceptTencentCloudSDKExceptionaserr:print(err)#这里的异常捕获处理,逻辑可以根据需要写短信配置,tx_sms/settings.py#密钥对secretId="pasteyourown"secretKey="pasteyourown"#SMSapplicationSDKAppIDappid="pasteyourown"#SDKAppID以1400开头#验证码过期时间间隔exp_interval="3"#表示三分钟内有效#短信模板ID,需要在短信控制台申请template_id="粘贴??自己的"#注意:模板ID`7839`这里只是举个例子,真正需要在短信控制台申请模板ID#Signaturesms_sign="Pasteyourown"#注意:signature参数使用`signaturecontent`而不是`signatureID`这里的签名“腾讯云”只是一个例子。真正的签名需要在短信控制台应用。接下来就是调用get_code和send_message这两个函数来发送验证码了。我这里用的是drf框架,只是为了测试一下sdk的配置,用python写个函数就可以了'GET'],detail=False)defsend_code(self,request,*args,**kwargs):telephone=request.query_params.get('telephone')code=get_code()result=send_message(telephone,code)如果result:returnAPIResponse(code=1,msg='验证码发送成功')else:returnAPIResponse(code=0,msg='验证码发送失败')配置路由urls.pyfromdjango.urlsimportpath,re_path,includefromapps.userimportviewsfromrest_framework.routersimportSimpleRouterrouter=SimpleRouter()router.register('',views.SendCodeView,'send_code')urlpatterns=[path('',include(router.urls)),]最后调用自己写的接口,发送验证码。本次分享的全部内容,现在想学习编程的朋友们欢迎关注Python技术大本营,获取更多技能和教程。