南京阿里云代理商:阿里云短信接口python

使用阿里云短信接口的Python代码如下:

import urllib.parse
import urllib.request
import json
import hashlib
import time

def send_sms(access_key, access_secret, phone_numbers, sign_name, template_code, template_param):
    # 构建请求参数
    params = {
        'AccessKeyId': access_key,
        'Action': 'SendSms',
        'Format': 'JSON',
        'PhoneNumbers': phone_numbers,
        'SignName': sign_name,
        'TemplateCode': template_code,
        'TemplateParam': template_param,
        'SignatureMethod': 'HMAC-SHA1',
        'SignatureNonce': str(int(time.time() * 1000)),
        'SignatureVersion': '1.0',
        'Timestamp': time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
        'Version': '2017-05-25',
    }
    # 计算签名
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    canonicalized_query_string = ''
    for k, v in sorted_params:
        canonicalized_query_string += '&' + urllib.parse.quote_plus(k) + '=' + urllib.parse.quote_plus(v)
    string_to_sign = 'GET&%2F&' + urllib.parse.quote_plus(canonicalized_query_string[1:])
    hmacsha1 = hashlib.sha1((access_secret+'&').encode('utf-8')).hexdigest()+'&'
    signature = hashlib.sha1((hmacsha1+string_to_sign).encode('utf-8')).hexdigest()
    params['Signature'] = signature

    # 发送请求
    url = 'http://dysmsapi.aliyuncs.com/?' + urllib.parse.urlencode(params)

    req = urllib.request.Request(url)
    with urllib.request.urlopen(req) as response:
        res = response.read().decode('utf-8')
        res_json = json.loads(res)
        return res_json

# 使用示例
access_key = 'your_access_key'
access_secret = 'your_access_secret'
phone_numbers = '13800000000,13900000000'  # 支持多个手机号,用逗号分隔
sign_name = 'your_sign_name'  # 短信签名
template_code = 'your_template_code'  # 短信模板CODE
template_param = '{"code":"123456"}'  # 模板参数

res = send_sms(access_key, access_secret, phone_numbers, sign_name, template_code, template_param)
print(res)

在使用代码之前,需要将your_access_key替换为自己的阿里云AccessKey ID,将your_access_secret替换为自己的Access Key Secret,将your_sign_name替换为自己短信签名,在阿里云控制台上创建短信模板并获取模板CODE,将your_template_code替换为自己的短信模板CODE。

在调用send_sms函数时,将手机号以字符串形式传入phone_numbers参数,多个手机号用逗号分隔;将短信模板参数以JSON字符串形式传入template_param参数。

发送短信后接口返回的结果为JSON格式,可以根据需要进行解析和处理。

阿里云提供了Python SDK方便开发者使用阿里云短信接口。下面是使用Python SDK发送短信的示例代码:

  1. 安装aliyun-python-sdk-core和aliyun-python-sdk-dysmsapi依赖库:
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-dysmsapi
  1. 导入SDK和设置AccessKey信息:
from aliyunsdkcore.client import AcsClient
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest

# AccessKey信息,可以在阿里云控制台获取
access_key_id = "<your_access_key_id>"
access_key_secret = "<your_access_key_secret>"

# 初始化AcsClient
client = AcsClient(access_key_id, access_key_secret, "default")
  1. 发送短信:
def send_sms(phone_numbers, sign_name, template_code, template_param):
    # 构造请求
    request = SendSmsRequest.SendSmsRequest()
    request.set_accept_format('json')
    request.set_SignName(sign_name)  # 设置短信签名
    request.set_TemplateCode(template_code)  # 设置短信模板Code
    request.set_TemplateParam(template_param)  # 设置短信模板变量
    request.set_PhoneNumbers(phone_numbers)  # 设置接收短信的手机号码,多个手机号码以逗号分隔

    # 发送请求
    response = client.do_action_with_exception(request)
    # 解析响应
    response_data = json.loads(response.decode('utf-8'))
    if response_data.get('Code') == 'OK':
        print("短信发送成功")
    else:
        print("短信发送失败")

# 调用发送短信函数
phone_numbers = "手机号码"
sign_name = "短信签名"
template_code = "短信模板Code"
template_param = "{"code":"123456"}"  # 短信模板变量,以json格式传递

send_sms(phone_numbers, sign_name, template_code, template_param)

注意替换上述代码中的<your_access_key_id><your_access_key_secret>为你自己的AccessKey信息,以及设置正确的手机号码、短信签名和短信模板Code。

南京阿里云代理商:阿里云短信接口python

以上就是使用Python SDK发送阿里云短信的示例代码。希望对你有帮助!

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/111893.html

(0)
luotuoemo的头像luotuoemo
上一篇 2023年12月17日 22:46
下一篇 2023年12月17日 22:54

相关推荐

  • 慈溪阿里云企业邮箱代理商:阿里云企业邮箱怎么退款

    慈溪阿里云企业邮箱代理商:阿里云企业邮箱怎么退款 作为一家慈溪阿里云企业邮箱代理商,我们深知阿里云企业邮箱在企业办公中的重要性和优势。阿里云企业邮箱不仅提供稳定可靠的邮件服务,还可以有效保障企业信息安全和提升工作效率。 使用阿里云企业邮箱后,我深刻感受到了其带来的诸多便利和优势。首先,阿里云企业邮箱具有强大的安全性和稳定性,可以有效防范垃圾邮件、恶意软件等网…

    2024年2月20日
    62400
  • 伊犁阿里云企业邮箱代理商:阿里云邮箱收不到

    问题描述 最近使用阿里云企业邮箱的用户反映收件箱无法正常接收邮件,导致无法及时处理工作或业务。这是一个严重影响工作效率的问题,需要及时解决。 阿里云企业邮箱优势 阿里云企业邮箱作为国内领先的企业邮箱服务提供商,拥有诸多优势。首先,其稳定的服务器架构和强大的技术支持保障了邮箱服务的稳定性和可靠性。其次,阿里云企业邮箱提供了完善的反垃圾邮件机制,能有效过滤垃圾邮…

    2024年2月19日
    68100
  • 桐乡阿里云企业邮箱代理商:阿里云账户如何注销

    桐乡阿里云企业邮箱代理商:阿里云账户如何注销 阿里云企业邮箱是一款由阿里云提供的专业、安全、稳定的企业级邮件服务。它可以满足企业用户在邮件沟通方面的各种需求,并提供了许多优势。 阿里云企业邮箱的优势 1. 安全可靠:阿里云企业邮箱采用高级的邮件防护技术,可以有效抵御病毒、垃圾邮件等不良信息的侵扰,保障用户的邮件安全。 2. 高效稳定:阿里云企业邮箱基于阿里云…

    2024年2月15日
    68900
  • 阿里云服务器开启远程端口

    如何远程连接阿里云主机服务器 第1一步当然是使用你的账号和密码登陆到阿里云,登陆成功以后,然后再点击【管理控制台】2进入阿里云控制台首页,后在云服务器ECS旁边点击数字13在实例下面看到了你买的这台阿里云服务器,这里有一个IP地址,你可以复制这个地址到客户端中登陆你的云服务器,或者是点击【更多】—–【连接管理终端】4此时会提示你输入管…

    2023年8月28日
    68000
  • 阿里云短信服务接口 收不到短信

    如果在使用阿里云短信服务接口时收不到短信,可能有以下几个原因: 验证码或短信内容问题:确保短信接收者手机号码正确且没有被拉黑过滤,也确保短信内容符合阿里云短信服务的规范和要求。 账户余额不足:检查阿里云账户中的短信余额是否足够发送短信。可以登录阿里云官方网站查看账户余额。 签名、模板或号码配置问题:确保短信签名、模板和接收号码的参数正确配置,包括与阿里云申请…

    2023年9月11日
    79800

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/