溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Django如何實現(xiàn)騰訊云短信功能?

發(fā)布時間:2020-06-23 15:58:05 來源:億速云 閱讀:212 作者:清晨 欄目:開發(fā)技術(shù)

不懂Django如何實現(xiàn)騰訊云短信功能??其實想解決這個問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。

簡介

由于項目在注冊、登錄、找回密碼 時需要發(fā)送短信驗證的功能,我們使用騰訊云短信做。

為什么要用騰訊云短信呢? 因為注冊就送 100條免費短信 的額度。

實現(xiàn)

注冊騰訊云

注冊一個騰訊云賬戶,騰訊云中提供了很多功能:云服務(wù)器、云存儲你、云直播、云短信等很多功能。

注冊地址: https://cloud.tencent.com/

注冊并要實名認(rèn)證

開通云短信

Django如何實現(xiàn)騰訊云短信功能?

Django如何實現(xiàn)騰訊云短信功能?

創(chuàng)建應(yīng)用

創(chuàng)建應(yīng)用并將應(yīng)用中生成的 SDK AppIDApp Key 復(fù)制下來,之后通過python發(fā)送短信時需要用到。

Django如何實現(xiàn)騰訊云短信功能?

Django如何實現(xiàn)騰訊云短信功能?

創(chuàng)建簽名

在騰訊云短信簽名時需要認(rèn)證,認(rèn)證需要填寫簽名類型:網(wǎng)站、APP、小程序、公眾號,前三種需要提供企業(yè)資質(zhì)等復(fù)雜的東西,個人公眾號認(rèn)證會比較便捷,所以推薦個人開發(fā)的話使用 公眾號 進行簽名。

so,咱們需要先 申請一個公眾號 然后 創(chuàng)建簽名

申請微信訂閱號

注冊地址: https://mp.weixin.qq.com/

Django如何實現(xiàn)騰訊云短信功能?

Django如何實現(xiàn)騰訊云短信功能?

創(chuàng)建簽名

Django如何實現(xiàn)騰訊云短信功能?

Django如何實現(xiàn)騰訊云短信功能?

創(chuàng)建模板

Django如何實現(xiàn)騰訊云短信功能?

發(fā)送短信

上述的準(zhǔn)備工作做完中我們開通相關(guān)服務(wù)并獲取到如下幾個值:

# 創(chuàng)建應(yīng)用,獲取到 appid 和 appkey
# 創(chuàng)建簽名,獲取 簽名內(nèi)容
# 創(chuàng)建模板,獲取 模板ID

接下來開始使用Python發(fā)送短信。

安裝SDK

pip install qcloudsms_py

基于SDK發(fā)送短信

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
def send_sms_single(phone_num, template_id, template_param_list):
  """
  單條發(fā)送短信
  :param phone_num: 手機號
  :param template_id: 騰訊云短信模板ID
  :param template_param_list: 短信模板所需參數(shù)列表,例如:【驗證碼:{1},描述:{2}】,則傳遞參數(shù) [888,666]按順序去格式化模板
  :return:
  """
  appid = 112142311 # 自己應(yīng)用ID
  appkey = "8cc5b87123y423423412387930004" # 自己應(yīng)用Key
  sms_sign = "Python之路" # 自己騰訊云創(chuàng)建簽名時填寫的簽名內(nèi)容(使用公眾號的話這個值一般是公眾號全稱或簡稱)
  sender = SmsSingleSender(appid, appkey)
  try:
    response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign)
  except HTTPError as e:
    response = {'result': 1000, 'errmsg': "網(wǎng)絡(luò)異常發(fā)送失敗"}
  return response
def send_sms_multi(phone_num_list, template_id, param_list):
  """
  批量發(fā)送短信
  :param phone_num_list:手機號列表
  :param template_id:騰訊云短信模板ID
  :param param_list:短信模板所需參數(shù)列表,例如:【驗證碼:{1},描述:{2}】,則傳遞參數(shù) [888,666]按順序去格式化模板
  :return:
  """
  appid = 112142311
  appkey = "8cc5b87123y423423412387930004"
  sms_sign = "Python之路"
  sender = SmsMultiSender(appid, appkey)
  try:
    response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
  except HTTPError as e:
    response = {'result': 1000, 'errmsg': "網(wǎng)絡(luò)異常發(fā)送失敗"}
  return response
if __name__ == '__main__':
  result1 = send_sms_single("15131255089", 548760, [666, ])
  print(result1)
  result2 = send_sms_single( ["15131255089", "15131255089", "15131255089", ],548760, [999, ])
  print(result2)

關(guān)于頻率限制

騰訊云短信后臺可以進行 短信頻率 的限制。

但是,由于我們是免費用戶所以無法進行設(shè)置,只能使用默認(rèn)的配置(30秒發(fā)1條/1小時發(fā)5條/1天發(fā)10條)。

Django如何實現(xiàn)騰訊云短信功能?

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Django如何實現(xiàn)騰訊云短信功能?內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI