本文實現了使用阿里雲《函式計算》+《簡訊服務》傳送簡訊的簡單功能,官方簡訊服務sdk功能全面,但較為冗雜,二爺精簡了官方sdk,實現了一段**(單檔案)傳送簡訊的功能。
閱讀本文,你需要先了解阿里雲函式計算、阿里雲簡訊服務的基本常識。
試用本**,需要預先在簡訊服務中申請簡訊簽名、簡訊模板。
# -*- coding: utf-8 -*-
import uuid
from aliyunsdkcore.client import acsclient
from aliyunsdkcore.profile import region_provider
from aliyunsdkcore.request import rpcrequest
# 簡訊傳送單檔案輕量版(阿里雲函式計算+python3環境測試通過),created on 2018-06-30
#注意不要更改
region = "cn-hangzhou"
product_name = "dysmsapi"
domain = "dysmsapi.aliyuncs.com"
access_key_id = "您在阿里雲申請的access_key_id"
access_key_secret = "您在阿里雲申請的access_key_secret"
acs_client = acsclient(access_key_id, access_key_secret, region)
region_provider.add_endpoint(product_name, region, domain)
class sendsmsrequest(rpcrequest):
def __init__(self):
rpcrequest.__init__(self, 'dysmsapi', '2017-05-25', 'sendsms')
def get_templatecode(self):
return self.get_query_params().get('templatecode')
def set_templatecode(self,templatecode):
self.add_query_param('templatecode',templatecode)
def get_phonenumbers(self):
return self.get_query_params().get('phonenumbers')
def set_phonenumbers(self,phonenumbers):
self.add_query_param('phonenumbers',phonenumbers)
def get_signname(self):
return self.get_query_params().get('signname')
def set_signname(self,signname):
self.add_query_param('signname',signname)
def get_resourceowneraccount(self):
return self.get_query_params().get('resourceowneraccount')
def set_resourceowneraccount(self,resourceowneraccount):
self.add_query_param('resourceowneraccount',resourceowneraccount)
def get_templateparam(self):
return self.get_query_params().get('templateparam')
def set_templateparam(self,templateparam):
self.add_query_param('templateparam',templateparam)
def get_resourceownerid(self):
return self.get_query_params().get('resourceownerid')
def set_resourceownerid(self,resourceownerid):
self.add_query_param('resourceownerid',resourceownerid)
def get_ownerid(self):
return self.get_query_params().get('ownerid')
def set_ownerid(self,ownerid):
self.add_query_param('ownerid',ownerid)
def get_smsupextendcode(self):
return self.get_query_params().get('smsupextendcode')
def set_smsupextendcode(self,smsupextendcode):
self.add_query_param('smsupextendcode',smsupextendcode)
def get_outid(self):
return self.get_query_params().get('outid')
def set_outid(self,outid):
self.add_query_param('outid',outid)
def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=none):
smsrequest = sendsmsrequest()
smsrequest.set_outid(business_id) #設定業務請求流水號,必填
smsrequest.set_phonenumbers(phone_numbers) #簡訊傳送的號碼列表,必填
smsrequest.set_signname(sign_name) #簡訊簽名
smsrequest.set_templatecode(template_code) #申請的簡訊模板編碼,必填
if template_param is not none:
smsrequest.set_templateparam(template_param)
#簡訊模板變數引數
smsresponse = acs_client.do_action_with_exception(smsrequest) #呼叫簡訊傳送介面,返回json
# todo 業務處理
return smsresponse
def handler(event, context):
__business_id = uuid.uuid1()
params=''
return send_sms(__business_id,"13000000000","雲通訊","sms_138673584",params)
執行結果資料為json格式,傳送成功返回的資料:
傳送失敗返回的部分資料示例(手機號碼錯誤):
阿里雲傳送簡訊
1.登入阿里雲後台開通郵件推送功能,郵件推送包含傳送簡訊功能 2.在阿里雲後台新增簡訊簽名,需要上傳企業營業執照,組織機構 證 稅務登記證 授權委託書等,可以直接上傳三張相同的營業執照的 代替 3.在阿里雲後台新增端模板 4.如果沒有新增accesskey,則新增 6.示例 iclientprofi...
阿里雲簡訊傳送
import com.aliyuncs.defaultacsclient import com.aliyuncs.iacsclient import com.aliyuncs.dysmsapi.model.v20170525.sendsmsrequest import com.aliyuncs.dy...
JAVA 阿里雲平台 簡訊傳送
defaultprofile.addendpoint cn hangzhou cn hangzhou product,domain 有報錯資訊,可檢查xerces.jar和xercesimpl.jar是否與阿里雲給的jar包衝突。阿里雲支援的regionid為 cn hangzhou cn beij...