开发者

教你用Python实现短信验证码的发送

开发者 https://www.devze.com 2022-12-07 09:18 出处:网络 作者: 萤火虫的小尾巴
目录1. 短信API平台2. 使用官方提供的SDK实现短信发送2.1 安装SDK2.2 使用官方的测试用例进行测试2.3 参数及其参数的查看3. 单例模式实现短信发送总结1. 短信API平台
目录
  • 1. 短信API平台
  • 2. 使用官方提供的SDK实现短信发送
    • 2.1 安装SDK
    • 2.2 使用官方的测试用例进行测试
    • 2.3 参数及其参数的查看
  • 3. 单例模式实现短信发送
    • 总结

      1. 短信API平台

      使用的短信API平台为:容联云(https://www.yuntongxun.com/)

      开发者文档:http://doc.yuntongxun.com/pe/5a531a353b8496dd00dcdfe2

      2. 使用官方提供的SDK实现短信发送

      python SDK 文档

      Python SDK github地址

      2.1 安装SDK

      pip install ronglian-sms-sdk -i https://pypi.tuna.tsinghua.edu.cn/simple
      

      教你用Python实现短信验证码的发送

      2.2 使用官方的测试用例进行测试

      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__':
          s编程客栈end_message()
      

      返回的结果为json类型的字符串。

      教你用Python实现短信验证码的发送

      教你用Python实现短信验证码的发送

      2.3 参数及其参数的查看

      初始化方法

      教你用Python实现短信验证码的发送

      教你用Python实现短信验证码的发送

      调用发送短信方法

      教你用Python实现短信验证码的发送

      短信模板:

      默认短信模板的tid为1

      至于其他的模板

      教你用Python实现短信验证码的发送

      发送手机号:

      如果没有认证,测试环境下需要设置短信能够发送的测试手机号

      教你用Python实现短信验证码的发送

      响应参数

      返回的为json类型的字符串

      教你用Python实现短信验证码的发送

      3. 单例模式实现短信发送

      由于每次要发送短信都需要向实例化一个对象,当发送短信的并发数太大时,会对内存造成较大的压力,所以修改为采用单例模式实现。

      from ronglian_sms_sdk import SmsSDK
      import json
      
      #python 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,android 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)
          p开发者_Js入门rint(sendSmsVerificationCode2)
          print(sendSmsVerificationCode3)
          res = sendSmsVerificationCode1.send_m编程essage('...', ('123456www.devze.com', 5), '1')
          print(res)
      

      教你用Python实现短信验证码的发送

      总结

      到此这篇关于用Python实现短信验证码发送的文章就介绍到这了,更多相关Python短信验证码发送内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号