本篇文章是使用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:

 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 阿里云短信群发推送的更多相关文章

  1. python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口

    !/usr/bin/python #encoding=utf-8 #Author:Ruiy #//////////////////////////////////////////////////// ...

  2. Python实现阿里云短信推送

    本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...

  3. 阿里云短信服务调用例子-Python

    阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是pyth ...

  4. PHP控制阿里云短信API接口实现短信群发功能

    阿里云短信支持先使用后支付的原则,价格为4分半1条. 通过SDK可以与网站功能的绑定,实现响应的短信发送功能 现已统一合并升级为:消息服务. 消息服务 阿里云消息服务(Message Service, ...

  5. ThinkPHP5.0手把手实现手机阿里云短信验证

    阿里云短信服务介绍阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了.首先,你需要注册一个阿里云账号,这个自行解决. 仅用于测试使用官方送的代金券够用了.相关配置1.开通阿里云Access ...

  6. zabbix短信(阿里云短信平台)与邮件报警

    环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...

  7. 移动端获取短信验证码java实现——阿里云短信服务

    需求:移动端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短信 ...

  8. 浏览器端获取短信验证码java实现——阿里云短信服务

    需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...

  9. flask+阿里云短信服务实现注册发送手机验证码

    效果图: 该效果主要讲解实现通过调用阿里云的SDK实现发送注册验证码短信(阿里云短信付费使用) 购买阿里云短信服务 购买链接:https://www.aliyun.com/product/sms 1. ...

随机推荐

  1. Tensorboard 的使用笔记

    参考的教程: https://www.tensorflow.org/guide/summaries_and_tensorboard 遇到的错误: File "/usr/local/lib/p ...

  2. 在线教育工具—白板系统的迭代1——bug监控排查

    近一年都在做一款在线教育工具(以下统称为“白板”)的开发工作,期间遇到N多的问题与坑,遂在此记录,并及时更新. 第一篇:关于资源访问填坑 因为是在线授课,所以使用我们白板的人员地域范围较广,基本上西到 ...

  3. JavaScript返回上一页和返回上一级页面并刷新

    JavaScript返回上一页和刷新当前页 window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:wi ...

  4. 剑指 offer面试题20 顺时针打印矩阵

    [题目描述] 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...

  5. python socket 编程(TCP与UDP)

    实验环境:python2 一.TCP编程 1.建立TCP服务器 ①创建TCPServer.py文件 ②编写服务器代码 1)创建socket对象,调用socket构造函数 2)绑定ip端口(IP号和端口 ...

  6. SQL语法语句总结(《SQL必知必会》读书笔记)

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

  7. bzoj1449&&bzoj2895

    题解: S连每场比赛流量1费用0 每场比赛连参赛队流量1费用0 我们发现调整一次 由win,lose变为 win+1,lose-1的费用为 (C*(win+1)^2+D*(lose-1)^2) - ( ...

  8. 解决Jenkins权限配置错误,导致登录时出现没有Overall/read权限

    问题 由于初次接触jenkins,于是在搭建好jenkins以后,想要对用户进行管理,于是乎开始在系统管理->configure Global Security里设置用户的权限. 在启用安全-& ...

  9. Http协议——Header说明

    下图是我用IE的开发人员工具截取的一个Http Request请求的Header. 下图是我用IE的开发人员工具截取的一个Http Response的Header. header常用指令 header ...

  10. GPU编程自学7 —— 常量内存与事件

    深度学习的兴起,使得多线程以及GPU编程逐渐成为算法工程师无法规避的问题.这里主要记录自己的GPU自学历程. 目录 <GPU编程自学1 -- 引言> <GPU编程自学2 -- CUD ...