在python中实现阿里云短信服务

要使用阿里云短信服务SDK的V2.0版本在Django项目中发送短信,您首先需要安装相应的SDK,然后在Django中配置和使用它。

安装SDK

使用pip安装SDK:

pip install aliyun-python-sdk-core 
pip install aliyun-python-sdk-dysmsapi

配置

在Django项目的settings.py文件中添加阿里云短信服务的配置:

# 阿里云短信服务配置 
ALIYUN_SMS_ACCESS_KEY_ID = 'AccessKeyId' 
ALIYUN_SMS_ACCESS_KEY_SECRET = 'AccessKeySecret' 
ALIYUN_SMS_REGION_ID = 'cn-hangzhou' # 地域ID 
ALIYUN_SMS_SIGN_NAME = '签名名称' 
ALIYUN_SMS_TEMPLATE_CODE = '短信模板Code'

创建服务类

在Django应用的utils目录下创建一个aliyun_sms.py文件,并添加以下内

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest

from LightCampus.settings import ALIYUN_SMS_ACCESS_KEY_ID, ALIYUN_SMS_ACCESS_KEY_SECRET, ALIYUN_SMS_REGION_ID


class AliyunSmsService:
    def __init__(self):
        self.client = AcsClient(ALIYUN_SMS_ACCESS_KEY_ID, ALIYUN_SMS_ACCESS_KEY_SECRET, ALIYUN_SMS_REGION_ID)

    def send_sms(self, phone_numbers, sign_name, template_code, template_param=None):
        request = CommonRequest()
        request.set_domain('dysmsapi.aliyuncs.com')
        request.set_version('2017-05-25')
        request.set_action_name('SendSms')
        request.add_query_param('PhoneNumbers', phone_numbers)
        request.add_query_param('SignName', sign_name)
        request.add_query_param('TemplateCode', template_code)
        if template_param:
            request.add_query_param('TemplateParam', template_param)
        response = self.client.do_action_with_exception(request)
        return response

在视图中使用

使用AliyunSmsService来发送短信:

import json
import random
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

from LightCampus.settings import ALIYUN_SMS_SIGN_NAME, ALIYUN_SMS_TEMPLATE_CODE
from LightCampus.utils.aliyun_sms import AliyunSmsService


@csrf_exempt
def send_message(request):
    data = json.loads(request.body)
    # 实例化服务类
    sms_service = AliyunSmsService()
    # 需要发送短信的手机号
    phone_numbers = data['phone_numbers']
    sign_name = ALIYUN_SMS_SIGN_NAME
    template_code = ALIYUN_SMS_TEMPLATE_CODE
    # 生成6位随机数
    random_number = random.randint(100000, 999999)
    # 验证码
    template_param = json.dumps({"code": random_number})
    # 验证码存储在session中
    request.session['sms_message'] = random_number

    response = json.loads(sms_service.send_sms(phone_numbers, sign_name, template_code, template_param))

    code = response['Code']
    msg = response['Message']

    return JsonResponse({
        'code': code,
        'msg': msg,
    })

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用Python订阅阿里云物联网平台的消息,你可以按照以下步骤进行操作: 1. 首先,你需要安装阿里云物联网平台提供的Python SDK的第三方库alibabacloud-iot-sdk。你可以使用pip命令来安装该库,命令为:pip install alibabacloud-iot-sdk。 2. 在你的Python代码,导入阿里云物联网平台的SDK模块,例如:from alibabacloud_iot_device import client。 3. 创建一个设备连接对象,初始化设备的身份信息,例如:device = client.Device(product_key, device_name, device_secret)。其,product_key是你的设备所属产品的Product Key,device_name是设备的名称,device_secret是设备的密钥。 4. 使用设备连接对象,调用subscribe方法来订阅阿里云物联网平台的消息,例如:device.subscribe(topic)。其,topic是你要订阅的消息主题。 5. 在你的代码,可以编写一个回调函数来处理接收到的消息。回调函数的参数包括消息主题和消息内容。 6. 运行你的Python代码,设备将开始订阅并接收阿里云物联网平台的消息。 请注意,以上步骤是使用阿里云物联网平台提供的SDK来订阅消息的一般步骤。具体的实现细节可能会因为你的具体需求和使用的SDK版本而有所差异。你可以参考阿里云物联网平台的官方文档和示例代码来获取更详细的信息和指导。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* *2* [mqtt实战-Python接入阿里云物联网平台实现订阅/发布](https://blog.csdn.net/JIANGYINGH/article/details/116615827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值