腾讯云短信开发
一、短信服务应用申请
""" 准备工作
1)创建短信应用 - 应用管理
2)申请短信签名 - 国内短信 > 签名管理
3)申请短信模块 - 国内短信 > 正文模板管理
"""
python中开发腾讯云短信服务
"""
1)API文档,接口的使用说吧
2)SDK,基于开发语言封装的可以直接调用的功能(工具)集合
官网sdk使用文档中找到安装命令:pip install qcloudsms_py
按照sdk使用说明进行开发:https://cloud.tencent.com/document/product/382/11672
"""
sdk使用说明:https://cloud.tencent.com/document/product/382/11672
libs/tx_sms/send_sms
# 所有配置换成申请的数据
# 申请的短信应用 SDK AppID
appid = 1400
# 申请的短信应用 SDK AppKey
appkey = "ba81"
# 申请的短信模板ID,需要在短信控制台中申请
template_id = 5447
# 申请的签名,参数使用的是`签名内容`,而不是`签名ID`
sms_sign = "Owen的技术栈"
from qcloudsms_py import SmsSingleSender
sender = SmsSingleSender(appid, appkey)
import random
def get_code():
code = \'\'
for i in range(4):
code += str(random.randint(0, 9))
return code
mobile = 13344556677
# 模板所需参数,和申请的模板中占位符要保持一致
code = get_code()
print(code)
params = [code, 5]
try:
result = sender.send_with_param(86, mobile, template_id, params, sign=sms_sign, extend="", ext="")
if result and result.get(\'result\') == 0:
print(\'发送成功\')
except Exception as e:
print(\'短信发送失败:%s\' % e)
二、短信服务二次封装
在libs下创建tx_sms包
__init__.py初始化
from .send import send_sms
from .send import make_code
settings.py
# 短信应用 SDK AppID
APPID = 1400123123 # SDK AppID 以1400开头
# 短信应用 SDK AppKey
APPKEY = "2025dfawefwfjkiokjg984100"
# 需要发送短信的手机号码
# phone_numbers = ["21212313123", "12345678902", "12345678903"]
# 短信模板ID,需要在短信控制台中申请
TEMPLATE_ID = 7839 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名
SMS_SIGN = "腾讯云" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
短信
import random
from qcloudsms_py import SmsSingleSender
from libs.sms import settings
import utils
def make_code():
code_list = []
for i in range(6):
code_list.append(str(random.randint(0, 9)))
return \'\'.join(code_list)
def send_sms(code, telephone):
ssender = SmsSingleSender(settings.APPID, settings.APPKEY)
params = [code] # 当模板没有参数时,`params = []`
try:
result = ssender.send_with_param(86, telephone,
settings.TEMPLATE_ID, params, sign=settings.SMS_SIGN, extend="", ext="")
"""
\'result\': 0表示成功
result: {\'result\': 0, \'errmsg\': \'OK\', \'ext\': \'\', \'sid\': \'2025dfawefwfjkiokjg984100\', \'fee\': 1, \'isocode\': \'CN\'}
"""
# print(\'result:\', result)
if not result.get(\'result\'):
return True
return False
except Exception as e:
utils.log.error(f\'手机号:{telephone},短信发送失败,错误为:{e}\')
if __name__ == \'__main__\':
test_phone = [\'13333333333\']
for phone in range(3):
send_sms(make_code(), telephone=test_phone[0])