- 腾讯云短信
- * 1. 注册腾讯云
- 3.2 详细代码【可直接作为接口】
- 2.2 创建签名
- 2.3 创建模板
- 2. 开通[腾讯云](https://l.gushuji.site/tencent)短信
- * 2.1 创建应用
- 3. Python 操作[腾讯云](https://l.gushuji.site/tencent)短信
- * 3.1 模块安装
1. 注册腾讯云
已有腾讯云账号可直接跳到第二步
- 官网
- 注册, 微信扫码关注腾讯云助手即可快速注册
- 选择 注册新账号,注册完成后,实名认证一下。选择 个人认证,填写一下信息就ok了。
2. 开通腾讯云短信
- 通过上一步我们已经注册好了腾讯云账号,接下来去开通 腾讯云短信 功能。
- 开通网址:https://console.cloud.tencent.com/smsv2
2.1 创建应用
- 创建一个应用,点进去就会看到 SDK AppID & App Key,后面会用得到。
2.2 创建签名
- 我们创建一个国内短信的签名
- 签名类型我推荐使用 公众号 ,比较容易通过,个人公众号也比较容易申请。
2.3 创建模板
- 接下来我们创建几个短信模板,注册、登录等等
- 这里有一些常用的标准模板,直接使用即可
注意:
发送短信有频率的限制,不过这个只有企业用户可以修改,个人用户无法修改
3. Python 操作腾讯云短信
- 官方SDK文档
3.1 模块安装
pip install qcloudsms_py
3.2 详细代码【可直接作为接口】
# -*- coding: UTF-8 -*- '''================================================= @Project -> File :MyDjango -> sms @IDE :PyCharm @Author :ruochen @Date :2020/6/21 15:57 @Desc : ==================================================''' import ssl # ssl._create_default_https_context = ssl._create_unverified_context from qcloudsms_py import SmsMultiSender, SmsSingleSender from qcloudsms_py.httpclient import HTTPError from django.conf import settings def send_sms_single(phone_num, template_id, template_param_list): """ 单条发送短信 :param phone_num: 手机号 :param template_id: [腾讯云](https://l.gushuji.site/tencent)短信模板ID :param template_param_list: 短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板 :return: """ appid = settings.TENCENT_SMS_APP_ID # 自己应用ID appkey = settings.TENCENT_SMS_APP_KEY # 自己应用Key sms_sign = settings.TENCENT_SMS_SIGN # 自己[腾讯云](https://l.gushuji.site/tencent)创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称) sender = SmsSingleSender(appid, appkey) try: response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign) except HTTPError as e: response = {'result': 1000, 'errmsg': "网络异常发送失败"} return response def send_sms_multi(phone_num_list, template_id, param_list): """ 批量发送短信 :param phone_num_list:手机号列表 :param template_id:[腾讯云](https://l.gushuji.site/tencent)短信模板ID :param param_list:短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板 :return: """ appid = settings.TENCENT_SMS_APP_ID # 自己应用ID appkey = settings.TENCENT_SMS_APP_KEY # 自己应用Key sms_sign = settings.TENCENT_SMS_SIGN # 自己[腾讯云](https://l.gushuji.site/tencent)创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称) sender = SmsMultiSender(appid, appkey) try: response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign) except HTTPError as e: response = {'result': 1000, 'errmsg': "网络异常发送失败"} return response