Django之騰訊云短信的實現
簡介
由于項目在注冊、登錄、找回密碼 時需要發送短信驗證的功能,我們使用騰訊云短信做。
為什么要用騰訊云短信呢? 因為注冊就送 100條免費短信 的額度。
實現
注冊騰訊云
注冊一個騰訊云賬戶,騰訊云中提供了很多功能:云服務器、云存儲你、云直播、云短信等很多功能。
注冊地址: https://cloud.tencent.com/
注冊并要實名認證
開通云短信
創建應用
創建應用并將應用中生成的 SDK AppID 和 App Key 復制下來,之后通過python發送短信時需要用到。
創建簽名
在騰訊云短信簽名時需要認證,認證需要填寫簽名類型:網站、APP、小程序、公眾號,前三種需要提供企業資質等復雜的東西,個人公眾號認證會比較便捷,所以推薦個人開發的話使用 公眾號 進行簽名。
so,咱們需要先 申請一個公眾號 然后 創建簽名
申請微信訂閱號
注冊地址: https://mp.weixin.qq.com/
創建簽名
創建模板
發送短信
上述的準備工作做完中我們開通相關服務并獲取到如下幾個值:
# 創建應用,獲取到 appid 和 appkey# 創建簽名,獲取 簽名內容# 創建模板,獲取 模板ID
接下來開始使用Python發送短信。
安裝SDK
pip install qcloudsms_py
基于SDK發送短信
#!/usr/bin/env python# -*- coding:utf-8 -*-import ssl# ssl._create_default_https_context = ssl._create_unverified_contextfrom qcloudsms_py import SmsMultiSender, SmsSingleSenderfrom qcloudsms_py.httpclient import HTTPErrordef send_sms_single(phone_num, template_id, template_param_list): ''' 單條發送短信 :param phone_num: 手機號 :param template_id: 騰訊云短信模板ID :param template_param_list: 短信模板所需參數列表,例如:【驗證碼:{1},描述:{2}】,則傳遞參數 [888,666]按順序去格式化模板 :return: ''' appid = 112142311 # 自己應用ID appkey = '8cc5b87123y423423412387930004' # 自己應用Key sms_sign = 'Python之路' # 自己騰訊云創建簽名時填寫的簽名內容(使用公眾號的話這個值一般是公眾號全稱或簡稱) 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’: '網絡異常發送失敗'} return responsedef send_sms_multi(phone_num_list, template_id, param_list): ''' 批量發送短信 :param phone_num_list:手機號列表 :param template_id:騰訊云短信模板ID :param param_list:短信模板所需參數列表,例如:【驗證碼:{1},描述:{2}】,則傳遞參數 [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’: '網絡異常發送失敗'} return responseif __name__ == ’__main__’: result1 = send_sms_single('15131255089', 548760, [666, ]) print(result1) result2 = send_sms_single( ['15131255089', '15131255089', '15131255089', ],548760, [999, ]) print(result2)
關于頻率限制
騰訊云短信后臺可以進行 短信頻率 的限制。
但是,由于我們是免費用戶所以無法進行設置,只能使用默認的配置(30秒發1條/1小時發5條/1天發10條)。
到此這篇關于Django之騰訊云短信的實現的文章就介紹到這了,更多相關Django 騰訊云短信內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: