1. 1.首先需要一个RAM账号,您需要一个RAM账号以及一对AccessKey IDAccessKey Secret,请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。
  2. 2.使用阿里云SDK调用某个产品的API前,确保您已经在阿里云控制台开通了该产品。

阿里云短信应用链接https://dysms.console.aliyun.com/

  1. pip install aliyun-python-sdk-core
  1. pip install aliyun-python-sdk-core-v3
  1. pip install aliyun-python-sdk-ecs

1.创建Client实例。在创建Client实例时,您需要获取Region ID、AccessKey ID和AccessKey Secret

2.创建request对象并添加属性

3.发起请求并处理应答或异常。

  1. # !/usr/bin/env python
  2. # coding=utf-8
  3. # !/usr/bin/env python
  4. # coding=utf-8
  5. # 我把AccessKey ID和AccessKey Secret存到配置文件中了(防止明文被看到)
  6. from luffyapi.settings.dev import ACCESSKEYID, ACCESSSECRET
  7. # 导入所需模块,再次之前我们都已经pip install好了的
  8. from aliyunsdkcore.client import AcsClient
  9. from aliyunsdkcore.request import CommonRequest
  10. # 这三个参数即 AccessKey ID, AccessKey Secret, 地区的id,关于地区id怎么获得我会贴在文章最下方
  11. client = AcsClient(ACCESSKEYID, ACCESSSECRET, "cn-shanghai")
  12. # 下面就是一些规定的配置,复制即可
  13. request = CommonRequest()
  14. request.set_accept_format("json")
  15. request.set_domain("dysmsapi.aliyuncs.com")
  16. request.set_method("POST")
  17. request.set_protocol_type("https") # https | http
  18. request.set_version("2017-05-25")
  19. request.set_action_name("SendSms")
  20. # 配置地区id 地区id即为 cn_%s % (所在的地区名,应该是可以细分到市级的,如cn_hangzhou)
  21. request.add_query_param("RegionId", "cn-shanghai")
  22. # 配置要发送的手机号码
  23. request.add_query_param("PhoneNumbers", "1881****052")
  24. # 配置你所设置的信息模板code,文章下方我会贴出来在哪边可以设置信息模板
  25. request.add_query_param("TemplateCode", "SMS_171117099")
  26. # 这个TemplateParam参数是给信息模板中的变量传值的,正常使用应该是后端获取验证码然后塞到这个参数中的
  27. request.add_query_param("TemplateParam", {"code": "456123"})
  28. # 这是配置签名的
  29. request.add_query_param("SignName", "输诚一")
  30. response = client.do_action(request) # 调用发送短信方法
  31. print(str(response, encoding=\'utf-8\')) # 可以打印出返回值,继而可以看到短信发送状态,正常如果成功了会显示:{"Message":"账户余额不足","RequestId":"07E5BFA8-7E61-4878-BCFC-A7F5D857AB9F","Code":"isv.AMOUNT_NOT_ENOUGH"}, 因为我们没充钱呀!

  1. # 上图中如果模板内容中设置了变量的话,就需要配置:
  2. # 这个TemplateParam参数是给信息模板中的变量传值的,正常使用应该是后端获取验证码然后塞到这个参数中的
  3. request.add_query_param("TemplateParam", {"code": "456123"})
  4. # 这个后面的 参数必须要是一个符合json格式的字典作为参数, 字典的key必须要与模板内容中(${code})中变量的值一模一样("code"),照理说可以设置多个变量,但是我无法DIY模板内容,只是作为测试,测试成功了即可,要投入使用就要花钱买信息量了。
  5. # 这段代码在上面可以找到,一看便知

帮到你的话可以点个赞/关注一下/支持一下~

版权声明:本文为shuchengyi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/shuchengyi/articles/11218313.html