1. 程式人生 > >阿裏雲短信服務調用例子-Python

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

display mit ner 版本 default click int print bsp

阿裏雲短信服務調用例子

阿裏雲官方文檔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在這裏

技術分享圖片

簽名名稱在這裏

技術分享圖片

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