python 阿里云短信群发推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7
阿里云入驻、申请短信服务、创建应用和模板等步骤请参考:阿里云短信服务入门
1、下载sdk
阿里云短信服务Python SDK
SDK工具包中一共包含了2个目录:
aliyun-python-sdk-core:阿里云api调用的核心代码库,python版本。
alicom-python-sdk-dysmsapi:流量直冲相关接口调用的客户端以及示例代码。
确定本机已经安装了python,版本要求:2.6.5 或以上版本。
进入aliyun-python-sdk-core 执行:python setup.py install。
运行demo示例。进入alicom-python-sdk- dysmsapi目录执行:python demo.py 。
2、编写发送短信 utils.py:
![](/assets/blank.gif)
1 # coding=utf-82 import sys3 4 from aliyunsdkcore.client import AcsClient5 from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest, QuerySendDetailsRequest6 7 reload(sys)8 sys.setdefaultencoding('utf8')9 10 REGION = "cn-hangzhou" 11 ACCESS_KEY_ID = "yourAccessKeyId" 12 ACCESS_KEY_SECRET = "yourAccessKeySecret" 13 14 acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION) 15 16 17 def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None): 18 smsRequest = SendSmsRequest.SendSmsRequest() 19 # 申请的短信模板编码,必填 20 smsRequest.set_TemplateCode(template_code) 21 22 # 短信模板变量参数 23 if template_param is not None: 24 smsRequest.set_TemplateParam(template_param) 25 26 # 设置业务请求流水号,必填。 27 smsRequest.set_OutId(business_id) 28 29 # 短信签名 30 smsRequest.set_SignName(sign_name); 31 32 # 短信发送的号码列表,必填。 33 smsRequest.set_PhoneNumbers(phone_numbers) 34 35 # 调用短信发送接口,返回json 36 smsResponse = acs_client.do_action_with_exception(smsRequest) 37 38 return smsResponse 39 40 def query_send_detail(biz_id, phone_number, page_size, current_page, send_date): 41 queryRequest = QuerySendDetailsRequest.QuerySendDetailsRequest() 42 # 查询的手机号码 43 queryRequest.set_PhoneNumber(phone_number) 44 # 可选 - 流水号 45 queryRequest.set_BizId(biz_id) 46 # 必填 - 发送日期 支持30天内记录查询,格式yyyyMMdd 47 queryRequest.set_SendDate(send_date) 48 # 必填-当前页码从1开始计数 49 queryRequest.set_CurrentPage(current_page) 50 # 必填-页大小 51 queryRequest.set_PageSize(page_size) 52 53 # 调用短信记录查询接口,返回json 54 queryResponse = acs_client.do_action_with_exception(queryRequest) 55 56 return queryResponse
![](/assets/blank.gif)
3、编写发送短信验证码(也可以是其他的)api接口,验证码需要放入缓存,安装redis,pip install django-redis
![](/assets/blank.gif)
1 import uuid2 3 from django.http import JsonResponse4 from django.utils.crypto import get_random_string5 from jsonrpc import jsonrpc_method6 7 from sms.utils import send_sms8 from django.core.cache import cache9 10 11 def send_sms_view(request): 12 """ 13 发送验证码 14 :param request: 15 :return: 16 """ 17 business_id = uuid.uuid1() 18 code = get_random_string(length=4, allowed_chars='0123456789') 19 params = "{\"code\":\"" + code + "\"}" 20 send_sms(business_id, request.GET.get('telephone'), "发送方名称", "自定义模板名称", params) 21 cache.set(request.GET.get('telephone'), code, timeout=600) 22 return JsonResponse({'success': True})
![](/assets/blank.gif)
前端通过调用send_sms_view接口发送短信
转载于:https://www.cnblogs.com/ruiy/p/8695296.html
python 阿里云短信群发推送相关推荐
- python 阿里云短信服务接入流程
阿里云短信服务接入流程 最近公司项目中的业务需求包括使用阿里云发送短信,所以写一篇博客和大家分享一下python使用sdk对接阿里云短息api的流程. 阿里云官方文档 链接 左侧导航栏中有很多部分,着 ...
- python 阿里云短信接口_阿里云短信PythonSDK的用法
阿里云知识 阿里云短信PythonSDK的用法 阿里云短信PythonSDK的用法示例代码 # coding=utf-8 from jdcloud_sdk.core.credential import ...
- Java实现腾讯云短信定时推送天气信息(通俗易懂)
准备: 首先在腾讯云申请自己的短信 腾讯云短信链接 然后再申请签名和正文模板 签名提供材料等待审批通过就可以 模板的模板内容是可以传参数的 例子:我是{1},来自{2},可以添加多个,后续可以通过参数 ...
- SpringBoot 自定义Starter(阿里云短信、消息推送)
首先在IDEA中创建SpringBoot项目,引入相关必要依赖,本次以阿里云短信/消息推送为例: <dependency><groupId>com.aliyun</gro ...
- 群发短信平台哪个好?推荐阿里云短信平台
阿里云服务器1888元优惠券免费领取 群发短信平台哪个好?推荐阿里云短信平台,阿里云云通信短信资源包,到达率高达99%,价格低. 短信服务(Short Message Service)是阿里云为用户提 ...
- 通过阿里云短信服务群发短信
通过阿里云短信服务群发短信 周末回了趟公司, 恰巧遇到产品让我给一批用户发送推广短信, 于是改了下阿里云的demo, sleep时间为0.1ms时速度是100条/min. 这是地址, 尚有很大的改进空 ...
- python发送阿里云短信教程
python发送阿里云短信教程 1.开通云短信 注册阿里云,开通短信服务. 2.快速学习 进入控制台后,点击左边的快速学习,申请签名,申请模板 签名与模板的生成需要审核,需等待,注意签名与模板作用范围 ...
- SpringBoot继承阿里云短信
2019独角兽企业重金招聘Python工程师标准>>> 简单的介绍一下阿里云的短信继承方法,和封装的一些工具类:具体的可以参考官方文档 1 先需要将打包阿里云的core和 sms包导 ...
- springboot项目调用阿里云短信接口(包括短信上行)
最近一直在做项目,很久没有写过博客了,最近做的一个项目中遇到了一个业务需要用到短信功能包括了发送短信和短信回复之后要收到回复内容,阿里云短信服务是一个非常好的平台,里面提供了多种短信接口可以供我们使用 ...
最新文章
- 小米4手机在DDMS下获取data/data目录权限
- 索尼诺基亚持股公司告赢苹果,获300万美元赔偿
- 【IT笔试面试题整理】寻找二叉树两节点的最近的公共祖先
- 迎开学水题狂欢赛(舞踏会[dp+三叉树],HH去散步[矩阵快速幂],排序[模拟],铁路旅行[线段树])
- php是走什么协议,TCP是什么协议
- 计算机组成原理r型指令logisim实现_大学本科计算机科学与技术专业知识体系
- C ++ 数组 | 多维数组(MultiDimensional Arrays)_2
- ORACLE SEQUENCE用法 (自增长)
- treeReduce和reduce
- 历时2年《爱上Android》出版了
- 列车运行图的编制原则是什么_列车运行图编制规则
- Windows下安装python的scipy等科学计算包(转)
- 【转载,留作参考】mysql 截取字符串以及mysql update select
- 解决php截取文字乱码问题
- vb调用摄像头实现拍照源码_牛逼!终于搞了一个高大上的人脸识别登录玩玩(附源码),出乎意料的简单......
- linux spyder 安装,Python开发环境Spyder安装方法(示例代码)
- php脉聊交友源码_脉聊源码-PHP脉聊交友网站源码(附app源码)下载-西西软件下载...
- R/ggplot2保存图片中文字体至PDF——showtext包一文清除所有障碍
- excel电子表格发展历史
- 利用线性回归预测波士顿房价
热门文章
- SAP期初上线导入步骤
- 水晶报表图表制作问题
- 重点人员管控系统开发方案,公安合成作战平台建设
- 课题组孟德森的论文被 IEEEGRSL 录用
- 距离杀死我们的那段爱:伤感QQ空间日志
- Sonic常见问题解决方法之——远程控制iOS设备时,提示“初始化Driver失败,部分功能不可用,请联系管理员”
- 老婆的驾照要下来了,形容下我此刻的心情
- BufferPool缓存机制
- requests_html爬取表情包
- 已解决bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requested: html5Lib. Do y