腾讯云端短信开发
04.腾讯云端短信开发文章目录04.腾讯云端短信开发一、短信服务应用申请二、API和SDK的区别三、python中使用腾讯源短信服务基本介绍安装使用说明腾讯云发短信测试:t_sms.py四、短信服务二次封装在libs目录下新建tx_sms包send_sms.pysettings.py一、短信服务应用申请准备工作0)注册公众号1)创建短信应用 - 应用管理2)在腾讯云的短信板块下创建国内短信 - 国
·
04.腾讯云端短信开发
文章目录
一、短信服务应用申请
准备工作
0)注册公众号
1)创建短信应用 - 应用管理
2)在腾讯云的短信板块下创建国内短信 - 国内短信 > 签名管理(等待审核)
3)申请短信模块 - 国内短信 > 正文模板管理(等待审核)
二、API和SDK的区别
1 API:api接口,第三方厂商,给你提供的http的接口,调用第三方的接口,就可以完成一些事,这就是api接口
2 SDK:软件开发工具包,厂商已经封装了很多底层代码,我们只需要按照文档,使用固定的方法完成固定的事即可(基于api封装出来的)
4 补充
c语言写的sdk, xx.dll xx.so c/c++编译后的动态链接库
动态链接库:
from ctypes import *
#----------以下四种加载DLL方式皆可—————————
# pDLL = WinDLL("./myTest.dll")
# pDll = windll.LoadLibrary("./myTest.dll")
# pDll = cdll.LoadLibrary("./myTest.dll")
pDll = CDLL("./myTest.dll")
#调用动态链接库函数(c代码中有这个函数,传入两个参数)
res = pDll.sum(1,2)
#打印返回结果
print(res)
三、python中使用腾讯源短信服务
基本介绍
1)API文档,接口的使用说明,去官方文档拷代码
2)SDK,基于开发语言封装的可以直接调用的功能(工具)集合
-3.0:更强大,不仅仅有发短信的代码,还有很多其他的
-2.0:只针对与发短信
安装
官网sdk使用文档中找到安装命令:pip install qcloudsms_py
使用说明
按照sdk使用说明进行开发:https://cloud.tencent.com/document/product/382/11672
腾讯云发短信测试:t_sms.py
# 所有配置换成申请的数据
# 申请的短信应用 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包
1 在libs目录下新建tx_sms包
__init__.py
send_sms.py
settings.py
2.在 __init__.py文件中
from .send_sms import get_code, send
send_sms.py
from qcloudsms_py import SmsSingleSender
from . import settings
from luffyapi.utils.logger import get_logger
import random
logger = get_logger()
# 随机生成四位数字验证码
# 字符串+数字 在python中报错---》python是动态强类型(不同类型之间不能之间运算)
def get_code():
code = ''
for i in range(6):
code += str(random.randint(0, 9)) # 更牛逼的方法自己实现
return code
def send(phone, code):
ssender = SmsSingleSender(settings.APPID, settings.APPKEY)
try:
result = ssender.send_with_param(86, phone, settings.TEMPLATE_ID, [code, ], sign=settings.SMS_SING, extend="",
ext="")
"""
'result': 0表示成功
result: {'result': 0, 'errmsg': 'OK', 'ext': '', 'sid': '2025dfawefwfjkiokjg984100', 'fee': 1, 'isocode': 'CN'}
"""
if result.get('result') == 0:
return True
else:
# 记录日志
logger.warning('%s手机号,短信发送失败' % phone)
return False
except Exception as e:
# 记录日志
logger.warning('%s手机号,短信发送时出异常' % phone)
return False
settings.py
# 短信应用 SDK AppID
APPID = 1400519021 # SDK AppID 以1400开头
# 短信应用 SDK AppKey
APPKEY = "17f5e09eb4a5f33ceab0fd336f480b16"
# 需要发送短信的手机号码
# 短信模板ID,需要在短信控制台中申请
TEMPLATE_ID = 951303 # NOTE: 这里的模板 ID`7839` 只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名
SMS_SING = "末流学习" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
更多推荐
所有评论(0)