• <tt id="0muie"><acronym id="0muie"></acronym></tt>
  • 系統城裝機大師 - 固鎮縣祥瑞電腦科技銷售部宣傳站!

    當前位置:首頁 > 腳本中心 > python > 詳細頁面

    Python實現短信驗證碼的發送

    時間:2022-12-06來源:www.djmaza-info.com作者:電腦系統城

    • 1. 短信API平臺
    • 2. 使用官方提供的SDK實現短信發送
      • 2.1 安裝SDK
      • 2.2 使用官方的測試用例進行測試
      • 2.3 參數及其參數的查看
    • 3. 單例模式實現短信發送
    • 總結

    1. 短信API平臺

    使用的短信API平臺為:容聯云(https://www.yuntongxun.com/)

    開發者文檔:http://doc.yuntongxun.com/pe/5a531a353b8496dd00dcdfe2

    2. 使用官方提供的SDK實現短信發送

    Python SDK 文檔

    Python SDK GitHub地址

    2.1 安裝SDK

    1 pip install ronglian-sms-sdk -i https://pypi.tuna.tsinghua.edu.cn/simple

    2.2 使用官方的測試用例進行測試

    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類型的字符串。

    2.3 參數及其參數的查看

    初始化方法

    調用發送短信方法

    短信模板:

    默認短信模板的tid為1

    至于其他的模板

    發送手機號:

    如果沒有認證,測試環境下需要設置短信能夠發送的測試手機號

    響應參數

    返回的為json類型的字符串

    3. 單例模式實現短信發送

    由于每次要發送短信都需要向實例化一個對象,當發送短信的并發數太大時,會對內存造成較大的壓力,所以修改為采用單例模式實現。

    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實現短信驗證碼發送的文章就介紹到這了

    分享到:

    相關信息

    • 8g虛擬內存設置多少好初始值和最大值

      最近有許多小伙伴修改電腦的虛擬內存的時候不清楚8G的運行內存該設置多大的初始值和最大值,其實都是有公式的,現在就給大家具體介紹一下設置的方法。...

      2022-10-22

    • 怎么修改網絡dns

      當我們在使用電腦的時候有時候會發現自己訪問不了某些網站或者會跳轉到其他無關的網站里,遇到這種問題可能是DNS被改了,那么該怎么修改DNS呢,現在就一起來看看吧。...

      2022-10-22

    系統教程欄目

    欄目熱門教程

    人氣教程排行

    站長推薦

    熱門系統下載

    人人透人人躁人人躁看_人人网在线观看国产_人人做人人爱超碰首页 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>