时间:2022-12-06来源:www.pcxitongcheng.com作者:电脑系统城
使用的短信API平台为:容联云(https://www.yuntongxun.com/)
开发者文档:http://doc.yuntongxun.com/pe/5a531a353b8496dd00dcdfe2
Python SDK 文档
Python SDK GitHub地址
1 | pip install ronglian - sms - sdk - i https: / / pypi.tuna.tsinghua.edu.cn / simple |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from ronglian_sms_sdk import SmsSDK # accId = '容联云通讯分配的主账号ID' accId = '...' # accToken = '容联云通讯分配的主账号TOKEN' accToken = '...' # appId = '容联云通讯分配的应用ID' appId = '...' # 发送短信验证码 def send_message(): # 初始化获取发送短信的对象 sdk = SmsSDK(accId, accToken, appId) # tid = '容联云通讯平台创建的模板' 默认模板的编号为1 tid = '1' # tid的数据类型为str # mobile = '手机号1,手机号2' 多个手机号在字符串中使用 , 进行分隔 mobile = '...' # 第一个参数为验证码 第二个参数为验证码的有效时间(对于短信模板1) datas = ( '123456' , 5 ) # 发送短信并接收返回结果 resp = sdk.sendMessage(tid, mobile, datas) print (resp) # 测试 if __name__ = = '__main__' : send_message() |
返回的结果为json类型的字符串。
初始化方法
调用发送短信方法
短信模板:
默认短信模板的tid为1
至于其他的模板
发送手机号:
如果没有认证,测试环境下需要设置短信能够发送的测试手机号
响应参数
返回的为json类型的字符串
由于每次要发送短信都需要向实例化一个对象,当发送短信的并发数太大时,会对内存造成较大的压力,所以修改为采用单例模式实现。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
from ronglian_sms_sdk import SmsSDK import json # accId = '容联云通讯分配的主账号ID' accId = '...' # accToken = '容联云通讯分配的主账号TOKEN' accToken = '...' # appId = '容联云通讯分配的应用ID' appId = '...' class SendSmsVerificationCode: """发送短信验证码的单例类""" def __new__( cls , * args, * * kwargs): """ 发送短信验证码单例类的初始化方法 :return: 返回一个发送短信验证码的对象 """ # 判断类中发送短信验证码的对象 _instance 是否已经存在 # 如果不存在, 创建一个发送短信验证码的对象, 并将其作为类属性 if not hasattr ( cls , '_instance' ): # 创建发送短信验证码的对象 cls ._instance = super (SendSmsVerificationCode, cls ).__new__( cls , * args, * * kwargs) # 创建SmsSDK对象作为 _instance 的对象属性 cls ._instance.sdk = SmsSDK(accId, accToken, appId) # 如果存在, 返回发送短信验证码的对象 return cls ._instance def send_message( self , mobile, datas, tid = '1' ): """ 发送短信的方法 @params mobile 字符串类型 mobile = '手机号1,手机号2' @params tid tid = '容联云通讯平台创建的模板' 默认模板的编号为1 @params datas 元组类型 第一个参数为验证码 第二个参数为验证码的有效时间(对于短信模板1) :return: 返回发送短信后的响应参数 """ # 发送短信 resp = self .sdk.sendMessage(tid, mobile, datas) print (json.loads(resp), type (json.loads(resp))) return resp # 测试 if __name__ = = '__main__' : sendSmsVerificationCode1 = SendSmsVerificationCode() sendSmsVerificationCode2 = SendSmsVerificationCode() sendSmsVerificationCode3 = SendSmsVerificationCode() print (sendSmsVerificationCode1) print (sendSmsVerificationCode2) print (sendSmsVerificationCode3) res = sendSmsVerificationCode1.send_message( '...' , ( '123456' , 5 ), '1' ) print (res) |
到此这篇关于用Python实现短信验证码发送的文章就介绍到这了
2023-03-17
python flask项目打包成docker镜像发布的过程2023-03-17
python调试模块ipdb详解2023-03-17
python使用openai生成图像的超详细教程python cron定时任务触发接口自动化巡检 apscheduler报错:Run time of job …… next run at: ……)” was missed by misfire_grace_time参数 找到任务超时的根本原因...
2023-03-15