目錄
阿里雲短信調用方法
環境准備
1.首先需要一個RAM賬號,您需要一個RAM賬號以及一對AccessKey ID和AccessKey Secret,請在阿里雲控制台中的AccessKey管理頁面上創建和查看您的AccessKey,或聯系您的系統管理員。
2.使用阿里雲SDK調用某個產品的API前,確保您已經在阿里雲控制台開通了該產品。
阿里雲短信應用鏈接:https://dysms.console.aliyun.com/
圖片新標簽頁打開會很清晰
安裝阿里雲 Python SDK
安裝SDK核心庫
1.如果您使用Python 2.x,執行以下命令,安裝阿里雲SDK核心庫:
pip install aliyun-python-sdk-core
2.如果您使用Python 3.x,執行以下命令,安裝阿里雲SDK核心庫:
pip install aliyun-python-sdk-core-v3
安裝雲產品的SDK
pip install aliyun-python-sdk-ecs
使用Python SDK
1.創建Client實例。在創建Client實例時,您需要獲取Region ID、AccessKey ID和AccessKey Secret
2.創建request對象並添加屬性
3.發起請求並處理應答或異常。
# !/usr/bin/env python
# coding=utf-8
# !/usr/bin/env python
# coding=utf-8
# 我把AccessKey ID和AccessKey Secret存到配置文件中了(防止明文被看到)
from luffyapi.settings.dev import ACCESSKEYID, ACCESSSECRET
# 導入所需模塊,再次之前我們都已經pip install好了的
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
# 這三個參數即 AccessKey ID, AccessKey Secret, 地區的id,關於地區id怎么獲得我會貼在文章最下方
client = AcsClient(ACCESSKEYID, ACCESSSECRET, "cn-shanghai")
# 下面就是一些規定的配置,復制即可
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")
# 配置地區id 地區id即為 cn_%s % (所在的地區名,應該是可以細分到市級的,如cn_hangzhou)
request.add_query_param("RegionId", "cn-shanghai")
# 配置要發送的手機號碼
request.add_query_param("PhoneNumbers", "1881****052")
# 配置你所設置的信息模板code,文章下方我會貼出來在哪邊可以設置信息模板
request.add_query_param("TemplateCode", "SMS_171117099")
# 這個TemplateParam參數是給信息模板中的變量傳值的,正常使用應該是后端獲取驗證碼然后塞到這個參數中的
request.add_query_param("TemplateParam", {"code": "456123"})
# 這是配置簽名的
request.add_query_param("SignName", "輸誠一")
response = client.do_action(request) # 調用發送短信方法
print(str(response, encoding='utf-8')) # 可以打印出返回值,繼而可以看到短信發送狀態,正常如果成功了會顯示:{"Message":"賬戶余額不足","RequestId":"07E5BFA8-7E61-4878-BCFC-A7F5D857AB9F","Code":"isv.AMOUNT_NOT_ENOUGH"}, 因為我們沒充錢呀!
補充
添加簽名
添加短信模板
# 上圖中如果模板內容中設置了變量的話,就需要配置:
# 這個TemplateParam參數是給信息模板中的變量傳值的,正常使用應該是后端獲取驗證碼然后塞到這個參數中的
request.add_query_param("TemplateParam", {"code": "456123"})
# 這個后面的 參數必須要是一個符合json格式的字典作為參數, 字典的key必須要與模板內容中(${code})中變量的值一模一樣("code"),照理說可以設置多個變量,但是我無法DIY模板內容,只是作為測試,測試成功了即可,要投入使用就要花錢買信息量了。
# 這段代碼在上面可以找到,一看便知
幫到你的話可以點個贊/關注一下/支持一下~