本篇文章是使用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. RabbitMQ入门_03_推拉模式

    我们知道,消费者有两种方式从消息中间件获取消息: 推模式:消息中间件主动将消息推送给消费者 拉模式:消费者主动从消息中间件拉取消息 推模式将消息提前推送给消费者,消费者必须设置一个缓冲区缓存这些消息. ...

  2. 桌面以及任务栏的所有浏览器,被加上了 hao.360.cn的网址

    桌面以及任务栏的所有浏览器,被加上了hao.360.cn的网址 也不知道是安装了什么软件,中了360的招. 桌面以及任务栏的所有浏览器,被加上了hao.360.cn的网址. 这种东西,肯定是该死的36 ...

  3. 豆知识( DNS; HTTP入门;网络协议)

    DNS入门知识 DNS服务器 通过DNS服务器,才能知道某个域名的IP地址到底是什么. Linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件 使用工具软件dig可以查询 ...

  4. selenium 3.6.0 geckodriver的一次坑

    Traceback (most recent call last):  File "./se3.py", line 16, in <module>    dr=webd ...

  5. ssh 上传文件以及文件夹到linux服务器

    闲来无事分享一篇,帮助到你的话,麻烦给老弟点个关注.经常会分享一些实用技能. 回归正题,现在服务器linux很多.是不是不会传文件?别急 下面就是方法: 一.上传文件到linux服务器 首先从你本地切 ...

  6. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 安卓开发分享功能,分享到facebook网页上不显示图片的问题

    最近公司要上分享功能,分享的地方包括微信,qq,facebook,功能完成后,发现分享到facebook的内容只有文字可以显示,图片不显示,其中图片存储是使用七牛的服务器:而分享到微信和qq都可以正常 ...

  8. 【C++基础】sort函数

    sort函数的时间复杂度为O(n*logn),排序方法类似于快排. # 头文件 #include<algorithm> using namespace std; # 参数 第一个参数:要排 ...

  9. 笔记本电脑CPU低压、标压、高压的区别

    一.笔记本CPU型号后面有通常“U”,“M”等字样,而“U”是低压的意思,“M”是标压的意思. 1.低压U:功耗低.发热低,性能不足 2.标压M:功耗高.发热高.性能高 二.选购技巧 笔记本电脑CPU ...

  10. Codeforces 580B: Kefa and Company(前缀和)

    http://codeforces.com/problemset/problem/580/B 题意:Kefa有n个朋友,要和这n个朋友中的一些出去,这些朋友有一些钱,并且和Kefa有一定的友谊值,要求 ...