阿里雲短信服務調用例子
阿里雲官方文檔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'))
我自己寫的一個例子
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在這里
簽名名稱在這里