一.阿里云短信服务流程

1.进入阿里云官网并登陆

2.进入短信服务界面,购买相应的短信套餐

关于短信服务可以查看帮助文档:

3.下载安装python 核心SDK库

其中sdk库有两个版本,建议安装最新版本。

旧版:

pip install aliyun-python-sdk-core

新版:

pip install aliyun-python-sdk-core-v3

4.创建签名

5.创建 AccessKey

想要调用阿里云的api必须要有自己的accesskey,这个是调用接口时候的必填参数。

访问密钥AccessKey(AK)相当于登录密码,只是使用场景不同。AccessKey用于程序方式调用短信服务API,而登录密码用于登录控制台。

AccessKey包括AccessKeyId和AccessKeySecret。

AccessKeyId用于标识用户。

AccessKeySecret是用来验证用户的密钥。AccessKeySecret必须保密。

6.找到相应的短信接口的SDK的python版本

Demo的代码如下:

#!/usr/bin/env python#coding=utf-8

from aliyunsdkcore.client importAcsClientfrom aliyunsdkcore.request importCommonRequest

client= AcsClient('', '', 'cn-hangzhou')

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('QuerySendDetails')

request.add_query_param('RegionId', "cn-hangzhou")

response=client.do_action(request)#python2: print(response)

print(str(response, encoding = 'utf-8'))

二.短信接口代码

1.通过普通程序让demo可以让手机收到短信验证码

这时候需要先改为自己的demo能让自己的手机号接收到短信:

#!/usr/bin/env python#coding=utf-8

from aliyunsdkcore.client importAcsClientfrom aliyunsdkcore.request importCommonRequestimportjsondefsend_sms(template, phone):

client= AcsClient('我的AccessKey ID', '我的Access Key Secret', 'default')

request=CommonRequest()

request.set_accept_format('json')

request.set_domain('dysmsapi.aliyuncs.com')

request.set_method('POST')

request.set_protocol_type('http') #https | http

request.set_version('2017-05-25')#set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等

request.set_action_name('SendSms')#request.set_action_name('QuerySendDetails')

#这个参数也是固定的

request.add_query_param('RegionId', "default") #98A66994-3DF4-4FA5-A33F-CCB36EB599D0

#request.add_query_param('RegionId', "cn-hangzhou")

request.add_query_param('PhoneNumbers', phone) #发给谁

request.add_query_param('SignName', "签名") #签名

request.add_query_param('TemplateCode', "短信模板编号") #模板编号

request.add_query_param('TemplateParam', f"{template}") #发送验证码内容

response =client.do_action_with_exception(request)returnresponse#response = client.do_action(request)

## python2: print(response)

#print(str(response, encoding='utf-8'))

if __name__ == '__main__':

template={'code': '556634',

}

res= send_sms(template, phone=我的手机号)print(str(res, encoding='utf-8'))

res_dict=json.loads(res)if res_dict.get('Message') == 'OK' and res_dict.get('Code') == 'OK':print("成功啦")else:print("失败啦")

2.通过接口的方式请求到短信验证码

(1)django框架下的短信接口demo

路由url:/api/user/sms_code/

视图:

写一个post方法的接口:

然后在各种逻辑判断成功后产生验证码,返回短信验证发送结果

下面是相关代码段:

#生成随机的短信验证码

code = "%06d" % random.randint(0, 999999)

template={'code': code,

}#第三方短信接口返回成功的一个判断,res为返回结果

res = send_sms(template, phone=mobile_phone)

res_dict=json.loads(res)if res_dict.get('Message') == 'OK' and res_dict.get('Code') == 'OK':

将sdk修改为一个公共的调用函数:

from aliyunsdkcore.client importAcsClientfrom aliyunsdkcore.request importCommonRequestdefsend_sms(template, phone):

client= AcsClient('AccessKey ID', 'Access Key Secret', 'default')#短信里面的 我的AccessKey ID 我的Access Key Secret

request =CommonRequest()

request.set_accept_format('json')

request.set_domain('dysmsapi.aliyuncs.com')

request.set_method('POST')

request.set_protocol_type('http') #https | http 注意当项目发布到服务器上需要修改协议

request.set_version('2017-05-25')#set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等

request.set_action_name('SendSms')#request.set_action_name('QuerySendDetails')

#这个参数也是固定的

request.add_query_param('RegionId', "default") #98A66994-3DF4-4FA5-A33F-CCB36EB599D0

#request.add_query_param('RegionId', "cn-hangzhou")

request.add_query_param('PhoneNumbers', phone) #发给谁

request.add_query_param('SignName', "我的签名") #签名

request.add_query_param('TemplateCode', "我的短信模板编号") #模板编号

request.add_query_param('TemplateParam', f"{template}") #发送验证码内容

response =client.do_action_with_exception(request)return response

最后通过post方法及url进行验证码请求。这样手机可以获取短信。

python 阿里云短信接口_python 之阿里云短信服务接入流程短信接口相关推荐

  1. python 阿里云短信服务接入流程

    阿里云短信服务接入流程 最近公司项目中的业务需求包括使用阿里云发送短信,所以写一篇博客和大家分享一下python使用sdk对接阿里云短息api的流程. 阿里云官方文档 链接 左侧导航栏中有很多部分,着 ...

  2. 阿里云短信服务接入流程

    背景 在最近的项目需求中, 需要将复用阿里短信能力, 实现用户手机号验证: 如果用户号码验证通过后, 可以让用户上传文件资料并进行打印. 故核心内容就是: 阿里云短信服务接入, 下面我们主要来介绍下阿 ...

  3. python做词云做文本处理_Python生成词云的制作

    现成的词云制作工具也很多: 1.Wordle是一个用于从文本生成词云图而提供的游戏工具. 2.Tagxedo可以在线制作个性化词云. 3.Tagul是一个Web服务,同样可以创建华丽的词云. 4.Ta ...

  4. python 引入同一路径的类_python可视化词云

    题记:身边总是不经意间能看到词云的效果图.本章介绍python实现词云的方法.效果如下: ( 词云--出现频率越多的词,字体越大 ) 工具篇 1.安装可视化库 pip3 install matplot ...

  5. 阿里云视频服务(视频边缘智能服务)接入流程

    本文档介绍视频边缘智能服务对接方式与控制台操作流程. 1.开通服务 请在如下路径找到LinkVisual:阿里云官网>物联网平台>视频服务,开通服务后,可以进入控制台使用服务完成设备对接. ...

  6. python如何调用阿里云接口_python 调用阿里云云解析api添加记录

    首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-alidns 可以配合jenkins传递参数 # ...

  7. python 语音识别接口_python实现阿里云语音识别api

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 超详细的阿里云短信验证码服务接入流程(最新版)——包含工具类可直接使用(java)

    一.使用步骤 1.申请阿里云账号并认证 链接地址:https://www.aliyun.com/product/sms 2.创建一个新的AccessKeys 包含AccessKey ID 和Acces ...

  9. python 断点_断点python_python 断点_python断点定义 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 很多项目是用python写构建脚本的,比如微信最近开源的终端跨平台组件 mars ...

  10. python怎样将文字排成圆形_python之词云设计-圆形图案

    效果图: 详细代码: import numpy as np from PIL import Image #图像处理库 from wordcloud import WordCloud import ma ...

最新文章

  1. 为啥led灯用一年后暗了很多_有些人日间车灯可以关为啥偏偏不关?是要告诉别人他的车好吗?...
  2. 1364: 开灯与关灯(深入思考问题更妙哦~~)
  3. jenkins+Docker持续化部署(笔记)
  4. 【ZOJ - 4019】Schrödinger's Knapsack (dp,背包,贪心,组内贪心组间dp)
  5. 我们团队一位自学Android的经验总结
  6. phpQuery乱码解决经验分享
  7. Centos7下安装yasm详细步骤
  8. 互联网老辛带你了解云架构集群
  9. 这些地区的大学,取消英语四六级口语考试!
  10. mysql保存为vna文件_微机 模拟试题三(含答案)
  11. IPV6 长度为46位
  12. [深入研究4G/5G/6G专题-40]: URLLC-11-《3GPP URLLC相关协议、规范、技术原理深度解读》-5-5G Qos原理与架构: 切片、PDU会话、QosFlow、5QI、DRB
  13. Python爬虫:老兵不死,用数据纪念2019男篮世界杯
  14. 郭盛华一生特别自律,这两样东西从不沾,网友:不愧是教父级人物
  15. 计算机按键不灵怎么回事,电脑键盘失灵,教您电脑键盘失灵怎么办
  16. Eve-NG No IP address on interface pnet0
  17. fedora23 桌面工具栏fedy, 桌面美化 allow: 2'lau不是2'l2u
  18. 【翻译搬运】协调多个运动单元的移动 Coordinated Unit Movement【一】
  19. 互联网晚报 | 11/22星期二 | 威马汽车上海全员工资打折;中国千万资产家庭达206万户;充电宝质量国家抽查不合格率达25%...
  20. SpringBoot配置拦截器导致swagger失效

热门文章

  1. Tell router update config
  2. idea为java文件自动生成copyright
  3. 常量池、栈、堆的比较
  4. Riverbed实现云内外的端到端可视化
  5. Eclipse安装Tomcat插件全攻略
  6. 运维自动化部署Cobbler之服务安装篇
  7. udev文件系统的使用和基本工作原理分析
  8. Linux 和 Android 系统性能分析
  9. 深入解读Linux内存管理系列(2)——内存节点的添加
  10. SQlite数据库的C编程接口(一) 简介 ——《Using SQlite》读书笔记