阿里雲函式計算傳送簡訊單檔案輕量版

2021-09-20 09:04:09 字數 3678 閱讀 5381

本文實現了使用阿里雲《函式計算》+《簡訊服務》傳送簡訊的簡單功能,官方簡訊服務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...