环境:

python 3.9

python sdk3.0

反对的python环境

后期筹备:

创立短信签名、短信模板、利用,就不赘述了,官网有指引,一步步依照提醒操作即可;

sdk3.0校验应用的是密钥对,所以还须要创立一个密钥对(  https://console.cloud.tencent...)

配置如下:

其实官网曾经给出了配置步骤,因为是测试应用,也就没有过多的配置,把一些必要的配置上,非必要的间接不要了;自己也是刚应用短信验证码的sdk,理解的并不深刻,目前用的是python sdk,请各位大佬多多指教;

写成模块模式,简略应用的,也能够间接单页面去写

短信发送模块tx_sms/send.py:

from tencentcloud.common import credentialfrom tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKExceptionfrom tencentcloud.sms.v20210111 import sms_client, modelsfrom . import settingsimport jsonimport random# 获取四位随机验证码def get_code():    s_code = ''    for i in range(4):        s_code += str(random.randint(0,9))    return s_code# 发送短信 ,腾讯短信验证码sdk 3.0def send_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.A8        client = 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))        if resp:            return True        else:            return False    except TencentCloudSDKException as err:        print(err)  # 这里的异样捕捉解决,逻辑能够本人按需写

短信配置,tx_sms/settings.py

# 密钥对secretId = "粘贴本人的"secretKey = "粘贴本人的"# 短信利用 SDK AppIDappid = "粘贴本人的"  # SDK AppID 以1400结尾# 验证码生效工夫距离Exp_interval = "3"  # 示意三分钟内无效# 短信模板ID,须要在短信控制台中申请template_id = "粘贴本人的"  # NOTE: 这里的模板 ID`7839` 只是示例,实在的模板 ID 须要在短信控制台中申请# 签名sms_sign = "粘贴本人的"  # NOTE: 签名参数应用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,实在的签名须要在短信控制台中申请

接下来就是调用get_code、send_message两个函数来进行发送验证码,我这里用的是drf框架,只是用来测试sdk的配置,轻易用python写一个函数也行

views.py

# 发送验证码from rest_framework.viewsets import ViewSetclass SendCodeView(ViewSet):    # 发送验证码    @action(methods=['GET'], detail= False)    def send_code(self, request, *args, **kwargs):        telephone = request.query_params.get('telephone')        code = get_code()        result = send_message(telephone, code)                if result:            return APIResponse(code= 1, msg= '验证码发送胜利')        else:            return APIResponse(code= 0, msg= '验证码发送失败')

配置一下路由urls.py

from django.urls import path, re_path, includefrom apps.user import viewsfrom rest_framework.routers import SimpleRouterrouter = SimpleRouter()router.register('', views.SendCodeView, 'send_code')urlpatterns = [    path('', include(router.urls)),]

最初就是去调用本人写的接口,发送验证码了

以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注Python技术大本营,获取更多技能与教程。