時間:2022-12-06來源:www.djmaza-info.com作者:電腦系統城
使用的短信API平臺為:容聯云(https://www.yuntongxun.com/)
開發者文檔:http://doc.yuntongxun.com/pe/5a531a353b8496dd00dcdfe2
Python SDK 文檔
Python SDK GitHub地址
1 | pip install ronglian - sms - sdk - i https: / / pypi.tuna.tsinghua.edu.cn / simple |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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__' : send_message() |
返回的結果為json類型的字符串。
初始化方法
調用發送短信方法
短信模板:
默認短信模板的tid為1
至于其他的模板
發送手機號:
如果沒有認證,測試環境下需要設置短信能夠發送的測試手機號
響應參數
返回的為json類型的字符串
由于每次要發送短信都需要向實例化一個對象,當發送短信的并發數太大時,會對內存造成較大的壓力,所以修改為采用單例模式實現。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
from ronglian_sms_sdk import SmsSDK import json # 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, 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) print (sendSmsVerificationCode2) print (sendSmsVerificationCode3) res = sendSmsVerificationCode1.send_message( '...' , ( '123456' , 5 ), '1' ) print (res) |
到此這篇關于用Python實現短信驗證碼發送的文章就介紹到這了
2022-12-06
Python中字符串的常用方法總結2022-12-06
Python利用openpyxl類實現在Excel中繪制樂高圖案2022-12-06
python游戲庫pygame經典教程最近有許多小伙伴修改電腦的虛擬內存的時候不清楚8G的運行內存該設置多大的初始值和最大值,其實都是有公式的,現在就給大家具體介紹一下設置的方法。...
2022-10-22
當我們在使用電腦的時候有時候會發現自己訪問不了某些網站或者會跳轉到其他無關的網站里,遇到這種問題可能是DNS被改了,那么該怎么修改DNS呢,現在就一起來看看吧。...
2022-10-22