Django之騰訊云短信的實(shí)現(xiàn)
簡(jiǎn)介
由于項(xiàng)目在注冊(cè)、登錄、找回密碼 時(shí)需要發(fā)送短信驗(yàn)證的功能,我們使用騰訊云短信做。
為什么要用騰訊云短信呢? 因?yàn)樽?cè)就送 100條免費(fèi)短信 的額度。
實(shí)現(xiàn)
注冊(cè)騰訊云
注冊(cè)一個(gè)騰訊云賬戶,騰訊云中提供了很多功能:云服務(wù)器、云存儲(chǔ)你、云直播、云短信等很多功能。
注冊(cè)地址: https://cloud.tencent.com/
注冊(cè)并要實(shí)名認(rèn)證
開通云短信
創(chuàng)建應(yīng)用
創(chuàng)建應(yīng)用并將應(yīng)用中生成的 SDK AppID
和 App Key
復(fù)制下來(lái),之后通過python發(fā)送短信時(shí)需要用到。
創(chuàng)建簽名
在騰訊云短信簽名時(shí)需要認(rèn)證,認(rèn)證需要填寫簽名類型:網(wǎng)站、APP、小程序、公眾號(hào),前三種需要提供企業(yè)資質(zhì)等復(fù)雜的東西,個(gè)人公眾號(hào)認(rèn)證會(huì)比較便捷,所以推薦個(gè)人開發(fā)的話使用 公眾號(hào) 進(jìn)行簽名。
so,咱們需要先 申請(qǐng)一個(gè)公眾號(hào)
然后 創(chuàng)建簽名
申請(qǐng)微信訂閱號(hào)
注冊(cè)地址: https://mp.weixin.qq.com/
創(chuàng)建簽名
創(chuàng)建模板
發(fā)送短信
上述的準(zhǔn)備工作做完中我們開通相關(guān)服務(wù)并獲取到如下幾個(gè)值:
# 創(chuàng)建應(yīng)用,獲取到 appid 和 appkey # 創(chuàng)建簽名,獲取 簽名內(nèi)容 # 創(chuàng)建模板,獲取 模板ID
接下來(lái)開始使用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: 手機(jī)號(hào) :param template_id: 騰訊云短信模板ID :param template_param_list: 短信模板所需參數(shù)列表,例如:【驗(yàn)證碼:{1},描述:{2}】,則傳遞參數(shù) [888,666]按順序去格式化模板 :return: """ appid = 112142311 # 自己應(yīng)用ID appkey = "8cc5b87123y423423412387930004" # 自己應(yīng)用Key sms_sign = "Python之路" # 自己騰訊云創(chuàng)建簽名時(shí)填寫的簽名內(nèi)容(使用公眾號(hào)的話這個(gè)值一般是公眾號(hào)全稱或簡(jiǎn)稱) 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:手機(jī)號(hào)列表 :param template_id:騰訊云短信模板ID :param param_list:短信模板所需參數(shù)列表,例如:【驗(yàn)證碼:{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)于頻率限制
騰訊云短信后臺(tái)可以進(jìn)行 短信頻率 的限制。
但是,由于我們是免費(fèi)用戶所以無(wú)法進(jìn)行設(shè)置,只能使用默認(rèn)的配置(30秒發(fā)1條/1小時(shí)發(fā)5條/1天發(fā)10條)。
到此這篇關(guān)于Django之騰訊云短信的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Django 騰訊云短信內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
快速解決pymongo操作mongodb的時(shí)區(qū)問題
這篇文章主要介紹了快速解決pymongo操作mongodb的時(shí)區(qū)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-12-12python 表達(dá)式和語(yǔ)句及for、while循環(huán)練習(xí)實(shí)例
下面小編就為大家?guī)?lái)一篇python 表達(dá)式和語(yǔ)句及for、while循環(huán)練習(xí)實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-07-07詳解python命令提示符窗口下如何運(yùn)行python腳本
這篇文章主要介紹了詳解python命令提示符窗口下如何運(yùn)行python腳本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python結(jié)合wxauto實(shí)現(xiàn)智能微信聊天機(jī)器人
wxauto?是我在2020年開發(fā)的一個(gè)基于?UIAutomation?的開源?Python?微信自動(dòng)化庫(kù),這篇文章主要介紹了Python結(jié)合wxauto實(shí)現(xiàn)智能微信聊天機(jī)器人,需要的朋友可以參考下2024-07-07Python工程師面試題 與Python Web相關(guān)
這篇文章主要為大家分享了Python工程師面試題,面試題的內(nèi)容主要與Python Web相關(guān),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01python生成指定長(zhǎng)度的隨機(jī)數(shù)密碼
這篇文章主要介紹了python生成指定長(zhǎng)度的隨機(jī)密碼示例,密碼使用數(shù)字和字母組合,大家參考使用吧2014-01-01