python 阿里云短信群发推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7
阿里云入驻、申请短信服务、创建应用和模板等步骤请参考:阿里云短信服务入门
1、下载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:
1 # coding=utf-8
2 import sys
3
4 from aliyunsdkcore.client import AcsClient
5 from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest, QuerySendDetailsRequest
6
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
3、编写发送短信验证码(也可以是其他的)api接口,验证码需要放入缓存,安装redis,pip install django-redis
1 import uuid
2
3 from django.http import JsonResponse
4 from django.utils.crypto import get_random_string
5 from jsonrpc import jsonrpc_method
6
7 from sms.utils import send_sms
8 from django.core.cache import cache
9
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})
前端通过调用send_sms_view接口发送短信
python 阿里云短信群发推送的更多相关文章
- python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口
!/usr/bin/python #encoding=utf-8 #Author:Ruiy #//////////////////////////////////////////////////// ...
- Python实现阿里云短信推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...
- 阿里云短信服务调用例子-Python
阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是pyth ...
- PHP控制阿里云短信API接口实现短信群发功能
阿里云短信支持先使用后支付的原则,价格为4分半1条. 通过SDK可以与网站功能的绑定,实现响应的短信发送功能 现已统一合并升级为:消息服务. 消息服务 阿里云消息服务(Message Service, ...
- ThinkPHP5.0手把手实现手机阿里云短信验证
阿里云短信服务介绍阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了.首先,你需要注册一个阿里云账号,这个自行解决. 仅用于测试使用官方送的代金券够用了.相关配置1.开通阿里云Access ...
- zabbix短信(阿里云短信平台)与邮件报警
环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...
- 移动端获取短信验证码java实现——阿里云短信服务
需求:移动端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短信 ...
- 浏览器端获取短信验证码java实现——阿里云短信服务
需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...
- flask+阿里云短信服务实现注册发送手机验证码
效果图: 该效果主要讲解实现通过调用阿里云的SDK实现发送注册验证码短信(阿里云短信付费使用) 购买阿里云短信服务 购买链接:https://www.aliyun.com/product/sms 1. ...
随机推荐
- 树状数组 Binary Indexed Tree/Fenwick Tree
2018-03-25 17:29:29 树状数组是一个比较小众的数据结构,主要应用领域是快速的对mutable array进行区间求和. 对于一般的一维情况下的区间和问题,一般有以下两种解法: 1)D ...
- Rails 5 Test Prescriptions 第5章 Testing Models
Rails,model层包含业务逻辑和储存逻辑.其中储存逻辑被ActiveRecord处理. 在model中,不是每件事都必须是ActiveRecord对象.model layer可以包含各种服务,对 ...
- Docker环境准备-安装Ubuntu
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
- vscode的keybindings.json 和 AHK 脚本映射Win键
vscodehotkey.ahk https://github.com/m2nlight/AHKVSCodeLikeMac ; Shortcuts like mac ; Written by Bob ...
- [linux]文件系统损坏,linux启动时 checking filesystems fail
先敲root password进入maintenance状态,然后fsck -y /dev/mapper/vg_wwwdata-lv_root等干净了以后,再exit就行了. ------------ ...
- wepy绘制雷达图
代码如下: <style lang='less'> .radar-canvas2 { width: 690rpx; height: 420rpx; } </style> < ...
- 011PHP文件处理——文件处理 文件内容分页操作类
<?php /** * 文件内容分页操作类: */ //访问地址:http://basicphp.com/006file/011.php?&page=1 class StrPage { ...
- Yii 初识
接管一个Yii的系统,因为没有文档,所以非常上火. 01 查版本 Yii::getVersion(); 02 生成webapp Yii 是支持通过命令行生成webapp的.其中, yiic.bat是W ...
- scikit-learn 学习笔记-- Generalized Linear Models (二)
Lasso regression 今天介绍另外一种带正则项的线性回归, ridge regression 的正则项是二范数,还有另外一种是一范数的,也就是lasso 回归,lasso 回归的正则项是系 ...
- 用yum安装lamp和lnmp环境
LAMP: 1.首先安装Apache和mysql: yum install -y httpd mysql mysql-server mysql-devel 2.启动httpd和mysqld: serv ...