阿里雲短信服務調用例子-Python


阿里雲短信服務調用例子

阿里雲官方文檔https://helpcdn.aliyun.com/document_detail/101893.html

首先需要安裝阿里雲PythonSDK(下面是python3版本的安裝方式)

pip install aliyun-python-sdk-core-v3

阿里雲官方調用例子

#!/usr/bin/env python
#coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('<accessKeyId>', '<accessSecret>', 'default')

request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')

request.add_query_param('PhoneNumbers', '15144445555')
request.add_query_param('SignName', 'xxxx')
request.add_query_param('TemplateCode', 'SMS_164561229')
request.add_query_param('TemplateParam', '{"code": 100500}')

response = client.do_action(request)
# python2:  print(response) 
print(str(response, encoding = 'utf-8'))
View Code

我自己寫的一個例子

import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


class AliyunSms():
    def __init__(self, accessKeyId, accessSecret, signName):
        self.accessKeyId = accessKeyId
        self.accessSecret = accessSecret
        self.signName = signName

    def _generate_request(self, phone_num, code, templateCode):
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('dysmsapi.aliyuncs.com')
        request.set_method('POST')
        request.set_protocol_type('https')  # https | http
        request.set_version('2017-05-25')
        request.set_action_name('SendSms')
        request.add_query_param('PhoneNumbers', phone_num)
        request.add_query_param('SignName', self.signName)
        request.add_query_param('TemplateCode', templateCode)
        request.add_query_param('TemplateParam', '{"code": ' + code + '}')
        return request

    def _generate_client(self):
        client = AcsClient(self.accessKeyId, self.accessSecret, 'default')
        return client

    def send_sms(self, phone_num, code, templateCode):
        """
        發送短信驗證碼,返回Code字段的值
        :param phone_num: 手機號
        :param code: 驗證碼內容
        :param templateCode: 驗證碼模板
        :return:
        """
        client = self._generate_client()
        request = self._generate_request(phone_num, code, templateCode)
        try:
            response = client.do_action(request)  # bytes 類型
            response = response.decode()  # str類型
            response_dict = json.loads(response)  # {'Message': '觸發天級流控Permits:1', 'RequestId': '5FA848EB-7C84-469D-8254-043835A05624', 'Code': 'isv.BUSINESS_LIMIT_CONTROL'}
            return response_dict['Code']

        except Exception as e:
            return None

if __name__ == '__main__':
    ali = AliyunSms('這里填accessKeyId', '這里填accessKeySecret', '這里填簽名名稱')
    a = ali.send_sms('13067742856', '這里是驗證碼內容',  '這里寫模版CODE')
    print(a)

模板CODE在這里

簽名名稱在這里

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM