09-Flask之短信验证

腾讯云(短信验证、短信通知) 【需要备案】

  • 参考
腾讯云
腾讯云短信: https://cloud.tencent.com/product/sms
参考文档: https://cloud.tencent.com/document/product/382/11672
  • 腾讯云 短信 SMS 申请
 https://cloud.tencent.com/product/sms
  • 创建应用
  准备好相关参数
  腾讯云短信每个月赠送100条短信,申请一个应用,获取appid,然后创建短信签名,之后创建正文模版
  
  应用 》 应用配置 》 appid
  应用 》 国内短信 》 短信内容配置 》  短信签名
  应用 》 国内短信 》 短信内容配置 》 短信正文(模板)
  • 安装
pip install qcloudsms_py
  • 腾讯云短信 Python SDK
https://github.com/qcloudsms/qcloudsms_py
  • 发送短信
# 定义资源
class SMSResource(Resource):
  def get(self):
      from qcloudsms_py import SmsSingleSender
      from qcloudsms_py.httpclient import HTTPError

      # SDK AppID是短信应用的唯一标识,调用短信API接口时需要提供该参数
      appid = 1400112809
      # App Key是用来校验短信发送请求合法性的密码,与SDK AppID对应,需要业务方高度保密
      appkey = '8d8b808cb9073023631d241951f49fb4'
      # 正文(模板id)
      template_id = 166915
      sms_sign = 'TPP短信验证'

      ssender = SmsSingleSender(appid, appkey)
      sms_type = 0
      # 短信模板: 短信验证码: {1},请于{2}分钟内填写。如非本人操作,请忽略本短信
      randomstr = random.randrange(1000,10000) # 验证码
      # 模板: 验证码  超时时间
      params = [randomstr, 3]  # 模板设置的两个参数
      # 需要发送的手机号码
      phone = 13800138000
      try:
          result = ssender.send_with_param(86, phone,
                                           template_id, params, sign=sms_sign, extend="",
                                           ext="")  # 签名参数未提供或者为空时,会使用默认签名发送短信

          # 验证码(后续验证从缓存中获取验证码)
          cache.set('smsid', randomstr,timeout=180)
          
          return {'msg': '短信发送成功'}
      except HTTPError as e:
          print(e)
      except Exception as e:
          print(e)


# 添加资源
api.add_resource(SMSResource, '/api/v1/sms/')

# 测试
127.0.0.1:5000/api/v1/sms/

备注: 本站配置,每月只有100条免费短信,如果超过即本示例发送短信失败!!!

作者:西门奄
链接:https://www.jianshu.com/u/77035eb804c3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 腾讯云(短信验证、短信通知) 【需要备案】 参考腾讯云腾讯云短信: https://cloud.tencent....
    EndEvent阅读 1,428评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,029评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,082评论 2 59
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,743评论 1 180
  • 关于卷积神经网络中卷积层的感想 这两天在 Udacity 的 machine learning 课程学习了卷积神经...
    一条新鲜咸鱼阅读 187评论 0 0