个人建设网站还要备案么,企业官网的应用场景,超级seo外链工具,wordpress 站外搜索短信服务应用申请 准备工作
1#xff09;创建短信应用 - 应用管理
2#xff09;申请短信签名 - 国内短信 签名管理
3#xff09;申请短信模块 - 国内短信 正文模板管理
python中开发腾讯云短信服务 1…短信服务应用申请 准备工作
1创建短信应用 - 应用管理
2申请短信签名 - 国内短信 签名管理
3申请短信模块 - 国内短信 正文模板管理python中开发腾讯云短信服务 1API文档接口的使用说吧
2SDK基于开发语言封装的可以直接调用的功能(工具)集合官网sdk使用文档中找到安装命令pip install qcloudsms_py按照sdk使用说明进行开发https://cloud.tencent.com/document/product/382/11672t_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 codemobile 13344556677
# 模板所需参数和申请的模板中占位符要保持一致
code get_code()
print(code)
params [code, 5]
try:result sender.send_with_param(86, mobile, template_id, params, signsms_sign, extend, ext)if result and result.get(result) 0:print(发送成功)
except Exception as e:print(短信发送失败%s % e)短信服务二次封装
在libs下创建 tx_sms 包
init.py
from .sms import get_code, send_codesettings.py
# 申请的短信应用 SDK AppID
APP_ID 1400# 申请的短信应用 SDK AppKey
APP_KEY ba81# 申请的短信模板ID需要在短信控制台中申请
TEMPLATE_ID 5447# 申请的签名参数使用的是签名内容而不是签名ID
SIGN Owen的技术栈sms.py
import random
def get_code():code for i in range(4):code str(random.randint(0, 9))return codefrom qcloudsms_py import SmsSingleSender
from . import settings
from utils.logging import logger
sender SmsSingleSender(settings.APP_ID, settings.APP_KEY)
def send_code(mobile, code, exp):try:result sender.send_with_param(86,mobile,settings.TEMPLATE_ID,(code, exp),signsettings.SIGN,extend, ext)if result and result.get(result) 0:return Truelogger.error(短信发送失败%s % result.get(errmsg))except Exception as e:logger.critical(短信发送异常%s % e)return False3 腾讯短信功能二次封装
3.1 封装v2版本
init.py
from .sms import get_code,send_sms_v2settings.py
# 短信应用 SDK AppID
APPID # SDK AppID 以1400开头
# 短信应用 SDK AppKey
APPKEY
# 需要发送短信的手机号码# 短信模板ID需要在短信控制台中申请
TEMPLATE_ID 1470213 # NOTE: 这里的模板 ID7839 只是示例真实的模板 ID 需要在短信控制台中申请
# 签名
SMS_SIGN 咋啦叭呼 # NOTE: 签名参数使用的是签名内容而不是签名ID。这里的签名腾讯云只是示例真实的签名需要在短信控制台中申请
sms.py
# 生成随机n位验证码的函数
import randomfrom qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
from . import settings # 使用相对导入def get_code(n4):code for i in range(n):code str(random.randint(0, 9))return code# 发送短信的函数
def send_sms(phone, code):phone_numbers [phone, ]ssender SmsSingleSender(settings.APPID, settings.APPKEY)params [code, 1] # 当模板没有参数时params []try:result ssender.send_with_param(86, phone_numbers[0],settings.TEMPLATE_ID, params, signsettings.SMS_SIGN, extend, ext)except Exception as e:return Falsereturn Trueif __name__ __main__:print(get_code())
3.2 封装v3版本
# sdkhttps://cloud.tencent.com/document/product/382/43196#
# 使用步骤-下载模块pip3 install tencentcloud-sdk-python# -*- coding: utf-8 -*-
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入对应产品模块的client models。
from tencentcloud.sms.v20210111 import sms_client, models# 导入可选配置类
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfiletry:cred credential.Credential(AKIDTXcdXG6u5C9ycAd7WyFex9ED5VwPpBXp, LZgaKxTOI0VowVs22qTvDKDtLcfWCiqm)httpProfile HttpProfile()httpProfile.reqMethod POST # post请求(默认为post请求)httpProfile.reqTimeout 30 # 请求超时时间单位为秒(默认60秒)httpProfile.endpoint sms.tencentcloudapi.com # 指定接入地域域名(默认就近接入)# 非必要步骤:# 实例化一个客户端配置对象可以指定超时时间等配置clientProfile ClientProfile()clientProfile.signMethod TC3-HMAC-SHA256 # 指定签名算法clientProfile.language en-USclientProfile.httpProfile httpProfileclient sms_client.SmsClient(cred, ap-guangzhou, clientProfile)req models.SendSmsRequest()req.SmsSdkAppId 1400763090 # 腾讯短信创建app把app的id号复制过来https://console.cloud.tencent.com/smsv2/app-manage# 短信签名内容: 使用 UTF-8 编码必须填写已审核通过的签名# 签名信息可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-sign) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-sign) 的签名管理查看req.SignName 关于金鹏公众号# 模板 ID: 必须填写已审核通过的模板 ID# 模板 ID 可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-template) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-template) 的正文模板管理查看req.TemplateId 1603526# 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致若无模板参数则设置为空req.TemplateParamSet [8888,100]# 下发手机号码采用 E.164 标准[国家或地区码][手机号]# 示例如8613711112222 其中前面有一个号 86为国家码13711112222为手机号最多不要超过200个手机号req.PhoneNumberSet [8615386800417]# 用户的 session 内容无需要可忽略: 可以携带用户侧 ID 等上下文信息server 会原样返回req.SessionContext req.ExtendCode req.SenderId resp client.SendSms(req)# 输出json格式的字符串回包print(resp.to_json_string(indent2))except TencentCloudSDKException as err:print(err)
3.2.2 把发送短信封装成包
# 后期别的项目也要使用发送短信----》只要把包copy到项目中即可# 封装包-目录结构send_tx_sms #包名__init__.pysettings.py #配置文件sms.py # 核心文件###__init__.py
from .sms import get_code,send_sms_by_phone
#### settings.py
SECRET_ID
SECRET_KEY
APP_ID
SIGN_NAME
TEMPLATE_ID#####sms.py
# 核心代码
import randomfrom tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入对应产品模块的client models。
from tencentcloud.sms.v20210111 import sms_client, models# 导入可选配置类
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from . import settings# 获取n位随机数组验证码的函数
def get_code(num4):code for i in range(num):random_num random.randint(0, 9)code str(random_num)return code# 发送短信函数
def send_sms_by_phone(mobile, code):try:cred credential.Credential(settings.SECRET_ID, settings.SECRET_KEY)httpProfile HttpProfile()httpProfile.reqMethod POST # post请求(默认为post请求)httpProfile.reqTimeout 30 # 请求超时时间单位为秒(默认60秒)httpProfile.endpoint sms.tencentcloudapi.com # 指定接入地域域名(默认就近接入)# 非必要步骤:# 实例化一个客户端配置对象可以指定超时时间等配置clientProfile ClientProfile()clientProfile.signMethod TC3-HMAC-SHA256 # 指定签名算法clientProfile.language en-USclientProfile.httpProfile httpProfileclient sms_client.SmsClient(cred, ap-guangzhou, clientProfile)req models.SendSmsRequest()req.SmsSdkAppId settings.APP_ID # 腾讯短信创建app把app的id号复制过来https://console.cloud.tencent.com/smsv2/app-manage# 短信签名内容: 使用 UTF-8 编码必须填写已审核通过的签名# 签名信息可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-sign) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-sign) 的签名管理查看req.SignName settings.SIGN_NAME# 模板 ID: 必须填写已审核通过的模板 ID# 模板 ID 可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-template) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-template) 的正文模板管理查看req.TemplateId settings.TEMPLATE_ID# 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致若无模板参数则设置为空req.TemplateParamSet [code, 1]# 下发手机号码采用 E.164 标准[国家或地区码][手机号]# 示例如8613711112222 其中前面有一个号 86为国家码13711112222为手机号最多不要超过200个手机号req.PhoneNumberSet [86 mobile, ]# 用户的 session 内容无需要可忽略: 可以携带用户侧 ID 等上下文信息server 会原样返回req.SessionContext req.ExtendCode req.SenderId resp client.SendSms(req)# 输出json格式的字符串回包# 字符串类型print(type(resp.to_json_string(indent2)))return Trueexcept TencentCloudSDKException as err:return False