下列代碼都是以本身的項目實例講述的,相關的文本內容不多,主要說明全在代碼註釋中。python
我是使用阿里云云通訊的短信服務,第一次使用會摸不着頭緒,這裏咱們須要作些準備工做:json
一、登錄本身的帳號進入阿里雲官網,沒有帳號的朋友們自行註冊api
二、在導航欄上搜索「短信服務」,沒有添加的話應該會有「免費開通」按鈕,再進入管理控制檯(咱們須要添加這個短信服務板塊,這樣控制檯會有短信服務這個模塊),管理控制檯的頁面:服務器
三、添加api密鑰,成功以後會自行生成一個入口api密鑰 id 和 secret。restful
四、在第一張圖片上點擊「添加簽名」和「添加模板」,添加完相關信息,須要相關人員審覈。添加模板時須要注意:dom
五、寫完全部的步驟,記得充值,衝個5塊錢應該夠了吧(反正是測試用的)函數
六、準備工做作完,如今接下來的都是複製粘貼代碼了(python3的朋友須要:pip install aliyun-python-sdk-core-v3` python2的朋友:pip install aliyun-python-sdk-core)測試
七、發送短信api接口配置阿里雲
from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest class Alidayu(object): """ api接口的初始化操做 accessKeyId: api密鑰的入口id accessSecret: api密鑰的入口密碼 regionId: 通常是你雲服務器的地區 以上三個參數必不可少,封裝成客戶端實例 發送配置(都是固定的配置)分別是發送短信的格式、域名、方式、協議、版本 """ def __init__(self): self.accessKeyId = "你的密鑰入口id" self.accessSecret = "你的密鑰入口secret" self.regionId = "cn-shanghai" # 通常是上海或者杭州 self.client = AcsClient(self.accessKeyId, self.accessSecret, self.regionId) # 發送配置(都是固定的配置) self.comRequest = CommonRequest() self.comRequest.set_accept_format("json") self.comRequest.set_domain("dysmsapi.aliyuncs.com") self.comRequest.set_method("POST") self.comRequest.set_protocol_type("https") self.comRequest.set_version("2017-05-25") def send_sms(self, telephone, code): """ 發送配置定義好,如今就是發送信息(驗證碼) 發送信息以前的四個參數也是必不可少的: 手機號碼、短信簽名名稱、短信模板CODE、短信模板的內容參數值 最後經過客戶發送便可 :param telephone: 手機號碼 :param code: 隨機驗證碼 :return: """ self.comRequest.set_action_name("SendSms") self.comRequest.add_query_param("PhoneNumbers", "你的手機號碼") self.comRequest.add_query_param("SignName", "你的短信簽名名稱") self.comRequest.add_query_param("TemplateCode", "你的模板CODE") # 這個是你配置的短信模板的內容裏的參數名稱,變量名必定要同樣 self.comRequest.add_query_param("TemplateParam", "{\"code\":\"%s\"}" % code) response = self.client.do_action(self.comRequest) print(response) return response
八、編寫一個視圖函數,經過url訪問就能夠了url
@bp.route("/sms_captcha") def sms_captcha(): telephone = request.args.get("telephone") if not telephone: return restful.params_error(message="請輸入手機號碼") # 借用圖形驗證碼類中的獲取隨機驗證碼的方法 captcha = Captcha.gene_text(numbers=4).replace(" ", "") # 上面的代碼你能夠刪掉,把telephone換成具體的手機號碼,captcha換成具體的驗證碼值 alidayu = Alidayu() if alidayu.send_sms(telephone, captcha): # 能夠print打印一下驗證 return restful.success() else: return restful.params_error(message="驗證碼發送失敗!")