Python项目48-插播短信接口(使劲撸)

2022-09-26 13:55:26 浏览数 (1)

  • 腾讯云短信接口开通
  • 短信接口的使用

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


腾讯云短信接口开通


开通应用

腾讯云:TP

腾讯云短信:TP

需要创建签名,但是创建签名需要各种信息提交,所以我们需要先申请一个微信公众号


注册微信公众号

微信公众号:TP

注册好之后 ,将公众号页面截图


设置签名


创建正文模板

短信接口的使用

腾讯python SDK文档:TP


安装腾讯云短信模块

代码语言:javascript复制
(luffy) bash-3.2$ pip install qcloudsms_py

封装发送短信模块

因为这个属于第三方的 ,所以我们在libs下面创建一个包,包,包,包,不是目录,是包:txsms,然后在包目录下创建一个settings.py文件和sms.py

libs/txsms/settings.py

代码语言:javascript复制
# 短信应用 SDK AppID - SDK AppID 以1400开头
APP_ID = ...
# 短信应用 SDK AppKey
APP_KEY = "..."
# 短信模板ID,需要在短信控制台中申请(正文模板的ID)
TEMPLATE_ID = ...
# 签名 - 是`签名内容`,而不是`签名ID`
SMS_SIGN = "深入浅出DRZ"
# 电话前缀
MOBILE_PREFIX = 86

libs/txsms/sms.py

代码语言:javascript复制
from qcloudsms_py import SmsSingleSender
from utils.logging import logger
from .settings import *
## 提供验证码的功能
import random
import ssl

## ssl证书,如果不加,会报错...
ssl._create_default_https_context = ssl._create_unverified_context


def get_code():
    code = ''
    for i in range(4):
        code  = str(random.randint(0, 9))

    return code


## 发送短信
# 1.短信发送者
sender = SmsSingleSender(APP_ID, APP_KEY)


def send_sms(mobile, code, exp):
    try:
        ## 发送短信
        response = sender.send_with_param(MOBILE_PREFIX, mobile, TEMPLATE_ID, (code, exp), sign=SMS_SIGN, extend="",
                                          ext="")

        ## 成功
        if response and response['result'] == 0:
            return True

        ## 失败
        logger.warning('%s - %s' % ('短信发送失败', response['result']))
    except Exception as e:
        ## 异常
        logger.warning('%s - %s' % ('短信发送失败', e))

    return False

libs/txsms/__init__.py

代码语言:javascript复制
## 包对外提供的功能方法
from .sms import get_code, send_sms

测试短信发送

代码语言:javascript复制
from libs import txsms

## 产生验证码
code = txsms.get_code()
print(code)
## 发送短信
print(txsms.send_sms('13051756150', code, 5))

0 人点赞