阿里云短信调用方法,超详细,无差错
作者:互联网
目录
阿里云短信调用方法
环境准备
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模板内容,只是作为测试,测试成功了即可,要投入使用就要花钱买信息量了。
# 这段代码在上面可以找到,一看便知
帮到你的话可以点个赞/关注一下/支持一下~
标签:调用,短信,AccessKey,request,无差错,阿里,query,模板,SDK 来源: https://www.cnblogs.com/shuchengyi/p/11218333.html