博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 阿里云短信群发推送
阅读量:6827 次
发布时间:2019-06-26

本文共 2795 字,大约阅读时间需要 9 分钟。

本篇文章是使用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     # 调用短信发送接口,返回json36     smsResponse = acs_client.do_action_with_exception(smsRequest)37 38     return smsResponse39 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天内记录查询,格式yyyyMMdd47     queryRequest.set_SendDate(send_date)48     # 必填-当前页码从1开始计数49     queryRequest.set_CurrentPage(current_page)50     # 必填-页大小51     queryRequest.set_PageSize(page_size)52 53     # 调用短信记录查询接口,返回json54     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接口发送短信

转载地址:http://zwykl.baihongyu.com/

你可能感兴趣的文章
微服务所需组件(大部分是Spring Cloud,持续更新)
查看>>
JavaScript闯关笔记
查看>>
Nacos系列:基于Nacos的配置中心
查看>>
做Web前端开发的你必须会这几点!
查看>>
react特性
查看>>
PAT A1037
查看>>
免费小说阅读小程序
查看>>
Spring MVC打印@RequestBody、@Response日志
查看>>
windows系统安装配置react-native运行环境
查看>>
Ajax在vue中的封装及使用
查看>>
python 使用PyQt5
查看>>
在Antd-Pro下实现文件下载
查看>>
Kotlin整合Vertx开发Web应用
查看>>
css-float
查看>>
95%的技术面试必考的JVM知识点都在这,另附加分思路!
查看>>
行为型模式:策略模式
查看>>
玩转Elasticsearch源码-ActionModule启动分析
查看>>
诚意之作,SuperTextView (v3.1.1)
查看>>
【重温基础】18.相等性判断
查看>>
一篇文章入门SQL语句
查看>>