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

 # coding=utf-8
import sys from aliyunsdkcore.client import AcsClient
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest, QuerySendDetailsRequest reload(sys)
sys.setdefaultencoding('utf8') REGION = "cn-hangzhou"
ACCESS_KEY_ID = "yourAccessKeyId"
ACCESS_KEY_SECRET = "yourAccessKeySecret" acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION) def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
smsRequest = SendSmsRequest.SendSmsRequest()
# 申请的短信模板编码,必填
smsRequest.set_TemplateCode(template_code) # 短信模板变量参数
if template_param is not None:
smsRequest.set_TemplateParam(template_param) # 设置业务请求流水号,必填。
smsRequest.set_OutId(business_id) # 短信签名
smsRequest.set_SignName(sign_name); # 短信发送的号码列表,必填。
smsRequest.set_PhoneNumbers(phone_numbers) # 调用短信发送接口,返回json
smsResponse = acs_client.do_action_with_exception(smsRequest) return smsResponse def query_send_detail(biz_id, phone_number, page_size, current_page, send_date):
queryRequest = QuerySendDetailsRequest.QuerySendDetailsRequest()
# 查询的手机号码
queryRequest.set_PhoneNumber(phone_number)
# 可选 - 流水号
queryRequest.set_BizId(biz_id)
# 必填 - 发送日期 支持30天内记录查询,格式yyyyMMdd
queryRequest.set_SendDate(send_date)
# 必填-当前页码从1开始计数
queryRequest.set_CurrentPage(current_page)
# 必填-页大小
queryRequest.set_PageSize(page_size) # 调用短信记录查询接口,返回json
queryResponse = acs_client.do_action_with_exception(queryRequest) return queryResponse

3、编写发送短信验证码(也可以是其他的)api接口,验证码需要放入缓存,安装redis,pip install django-redis

 import uuid

 from django.http import JsonResponse
from django.utils.crypto import get_random_string
from jsonrpc import jsonrpc_method from sms.utils import send_sms
from django.core.cache import cache def send_sms_view(request):
"""
发送验证码
:param request:
:return:
"""
business_id = uuid.uuid1()
code = get_random_string(length=4, allowed_chars='')
params = "{\"code\":\"" + code + "\"}"
send_sms(business_id, request.GET.get('telephone'), "发送方名称", "自定义模板名称", params)
cache.set(request.GET.get('telephone'), code, timeout=600)
return JsonResponse({'success': True})

前端通过调用send_sms_view接口发送短信

Python实现阿里云短信推送的更多相关文章

  1. .Net core----使用容联云短信推送

    一直在忙于写接口,也没有时间去好好的整理的一片文档,写一篇经常的用到的短信推送案例 还是比较喜欢干货  作为有个程序员 有时候复制粘贴习惯了   实在的还是比较实在 比如能用复制解决的为什么不用复制 ...

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

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

  3. python 阿里云短信群发推送

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

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

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

  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. vue踩坑记录

    一.element resetFields 方法报错 网上查的解决方案 resetForm(formName) { this.$nextTick(() => { this.$refs[formN ...

  2. openresty luarocks 安装以及openssl 问题处理

      1. 安装方式 wget https://luarocks.github.io/luarocks/releases/luarocks-2.4.3.tar.gz tar -xzvf luarocks ...

  3. windows 2016 容器管理

    1. docker-compose 安装        python   2.7        pip       pip   install docker-compose        常见问题: ...

  4. DIV,CSS学习

    如何将页脚固定在页面底部 http://web.jobbole.com/10408/

  5. CentOS6.8编译安装LAMP

    CentOS6.8编译安装Apache2.4.25.MySQL5.7.16.PHP5.6.29 初始化 #固定IP vi /etc/sysconfig/network-scripts/ifcfg-et ...

  6. mongodb 的一些启动命令

    启动命令 nohup /home/sh/local/mongodb-linux-x86_64-rhel62-3.4.0/bin/mongod -dbpath /home/sh/local/mongod ...

  7. Java格式化时间为String类型

    SimpleDateFormat ormater = new SimpleDateFormat("yyyy-MM-dd"); Date date=new Date(); Strin ...

  8. Linux Shell read命令

    linux read 用法 1.基本读取 read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说).得到输入后,read命令将数据放入一个标准变量中.下面是 read命令 的最简单形 ...

  9. hadoop中的一次集群任务执行超时问题查找过程

    问题背景 本次进行一个项目的重构,在某些活动数据量比较大的情况下,会偶尔出现1200s超时的情况,如下: AttemptID:attempt_1410771599055_11709_m_000033_ ...

  10. MySQL重启端口被占用处理

    1,查看日志的ERROR 2018-05-23T01:26:59.230382Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set. 201 ...