腾讯云短信服务(详细教程-Django框架、API接口)实现
今天和大家分享如何实现短信服务,以腾讯云服务为例
目录
一、准备工作
二、短信服务接口开发
2.1 服务配置
2.2接口开发
三、测试短信服务
四、结束语
一、准备工作
腾讯云短信服务会发放免费的个人认证短信和赠送短信总共200条,但时间很短,方便学习的同学使用。
随后进行进行我们的短信配置,选择国内短信。
根据快速入门的标准完成签名管理、正文模板管理、群发短信这几个模块的配置。详细教程参考对应文档操作即可,我这里也尝试了好几次,有的是签名不规范,建议签名类型选择公众号能快速通过。
所有的审核都通过了之后,我们的准备工作也就做好了,可以选择测试我们的短信服务,这里就不细说了,感兴趣的朋友可以创建群发短信任务尝试。如下图:
二、短信服务接口开发
2.1 服务配置
这里我使用的是Django框架对接口进行开发,并且运用了腾讯云开源的第三方库qcloudsms_py。
配置代码如下:
import ssl
import random
ssl._create_default_https_context = ssl._create_unverified_contextfrom qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
import random
import smtplib
import string
from email.header import Header
from email.mime.text import MIMEText
from django.core.cache import cache# 获取云短信应用的appid和appkey
SDKAppID = '1400681577'
AppKey = 'f54b46f0038864a4c842026e9227f74c'
#签名
sms_sign = '程序员九仙公众号'
# 模板ID
template_id = '1407298'
# 输入的手机号# 获取随机6位数
def captcha():captcha = ''for i in range(6):now_number = str(random.randint(0, 9))captcha += now_numberreturn captcha# 发送手机号验证码
def send_pcode(phone_number,captcha):print('获取验证码',captcha)ssender = SmsSingleSender(SDKAppID, AppKey)# 模板中的参数,也就是{1}{2}这两个参数params = [captcha, "2"] # 当模板没有参数时,`params = []`try:result = ssender.send_with_param(86, phone_number,template_id, params, sign=sms_sign, extend="", ext="") # 签名参数不允许为空串print(result)except HTTPError as e:print(e)except Exception as e:print(e)return phone_number,captchaif __name__ == '__main__':send_pcode(19524662948,captcha())
其中需要特备注意的是:SDKAppID(短信应用的appid)、AppKey、sms_sign(短信签名名称)、template_id(模板ID)。可参考下图的位置去找:
2.2接口开发
以下代码是获取短信验证码的接口
@api_view()
def gen_code(request):print('--->data', request.GET)phone = request.GET.get('phone', '')if not phone:return Response({'msg': '手机号不能为空'}, status=422)phone,sms_code = sms__.send_pcode(phone,captcha())print(sms_code)cache.set(phone, sms_code, timeout=15*60)return Response({'msg': '已发送'})
其中send_pcode就是刚才上面代码封装好的方法,里面含有腾讯短信服务的相关配置。django框架还需要配置路由、 Views里面的一些中间件等这里就不做详细介绍了。
以下代码是注册账户的接口
"""注册接口"""
@api_view(['POST'])
def register(request):s = PhoneCodeSerializer(data=request.data)if s.is_valid():cache_code = cache.get(s.validated_data['phone'])if TbUser.objects.filter(phone=s.validated_data['phone']).exists():return Response({'msg': '手机号已注册,不能重复注册'}, status=402)if cache_code == s.validated_data['code']:u = TbUser()u.phone = s.validated_data['phone']u.save()token = uuid.uuid4().hexcache.set(token, u.pk, timeout=7 * 24 * 3600)return Response({'phone': u.phone, 'token': token, 'msg': '注册成功'})return Response({'msg': '验证码有误'}, status=403)return Response(s.errors, status=422)
一切准备就绪,下面我们来测试一下我们的短信服务。
三、测试短信服务
测试效果如下图:
会发现我们的接口是通的,并且注册成功了。进入数据库查看以下,如下图:
可以发现刚才我们注册的19524662948这个账号已经成功添加到我们的tb_user表中,并且初始密码为手机号的后六位的加密模式,整个短信服务测试成功!
四、结束语
短信服务除了用来注册,也可以用来登录、找回密码等等,根据不同的业务需求不断变化就好了。觉得还可以的话三连哦,感谢大家的支持。
腾讯云短信服务(详细教程-Django框架、API接口)实现相关推荐
- 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)
2021/8/17/23:01{2021/8/17/23:01}2021/8/17/23:01 文章目录 前言 一.如何成功申请到腾讯云短信服务 1.签名申请 2.正文模板申请 二.发送短信API开发 ...
- 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...
- SpringBoot工程接入腾讯云短信服务平台
由于业务需要,需要使用第三方短信平台,进行验证码的发送.网上的短信服务平台主要由:百度.腾讯.阿里云:采用官方提供的SDK,调用接口即可. 腾讯云短信服务平台和阿里云短信服务平台,一般步骤为:注册-- ...
- 项目接入腾讯云短信服务SMS实现向用户发送手机验证码
1.自述 早在18年的时候,我就在项目中使用过阿里云的短信服务,现在我上阿里云短信控制台看,还能看到当时创建的短信签名,如下图所示. 出于某种原因,我现在想重新申请一个新的签名,却审批失败了,原因是: ...
- FLY攻略之第二回: 接入腾讯云短信服务 实现手机验证注册
接入腾讯云短信服务 实现手机验证注册 上回说到 ,完成了security的接入和登录功能,但是在准备登录尝试security的强大时发现,还没有完成注册功能,根本没有账号提供登录,那么这回,就实现手机 ...
- 使用腾讯云短信服务实现Spring Boot短信发送
发送短信 01 注册微信公众号 02 注册腾讯云账号 03 创建签名和模板 第一步 创建签名 第二部 创建模板 04 发送短信 01 注册微信公众号 在百度搜索微信公众平台,并在进入官网后注册.在账号 ...
- 如何利用腾讯云短信服务群发祝福短信?
节日问候以及日常问候已经是企业维护已有会员的重要方式之一,我们可以利用腾讯云短信服务群发节假日祝福以及问候短信. 准备工作: 1.购买腾讯云短信套餐包[国内短信首购低至0.032元/条] 2.准备短信 ...
- 使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题
使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题 参考文章: (1)使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题 (2)https://www.cnblog ...
- Java后端利用腾讯云短信服务发短信
利用手机验证码进行注册或进行下一步操作已经是非常普遍的,这篇文章就教你如何是用腾讯云短信服务发送手机验证码. 文章目录 一.前提条件 二.代码实现 1.引入依赖 2.Java代码实现 3.代码改进 4 ...
- Python使用腾讯云-短信服务发送手机短信
原创不易,欢迎关注我的微信公众号:司马弈 获取更多精选内容. 腾讯云短信服务介绍 目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 ...
最新文章
- 【计算理论】确定性有穷自动机 ( 自动机组成 | 自动机语言 | 自动机等价 )
- Luogu 2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
- Java IDE——Eclipse下载与安装
- Oracle的NVL函数
- Flink状态管理与CheckPoint、Savepoint
- GIAC | 大数据分析系统在游戏领域的迭代与实践
- linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程
- java iterable_太糟糕了,Java 8没有Iterable.stream()
- 在一个list中增加一个节点
- 电脑版剪映v0.6.9内测版
- Docker学习总结(48)——Docker 四种网络模式温故
- 第一次使用并配置Hibernate
- html 漂亮的星空登录模板
- 计算机网络:数字签名与数字证书
- 幅频特性曲线protues_函数幅频特性曲线
- 广播电视相关信息系统 安全等级保护基本要求
- Visual C++ 2008入门经典 Ivor Horton(书_在线阅读)
- 【基础算法】Gossip协议
- 强连通分量(Tarjan算法)和缩点
- ALTER PLUGGABLE DATABASE xxx CLOSE卡住