首页 > 编程语言 >Java 集成阿里云发送短信

Java 集成阿里云发送短信

时间:2024-10-16 20:59:14浏览次数:8  
标签:集成 短信 models dysmsapi20170525 aliyun error Java com

首先要有个阿里云账号,可到阿里云登录页注册并登录。

登录后访问短信服务快速学习和测试,其中有逐步介绍如何发送短信:

新增资质

新增资质相当于进行实名认证,资质是申请签名的实名化信息。

申请签名

签名是短信中能代表发送者属性的字段。一般就是公司名字。发送短信时,签名会附加到短信开头。

申请模板

短信是基于模板的,模板中带有变量占位符,变量格式如${code},仅支持 1 个变量。

例如:您的验证码为${code},该验证码 5 分钟内有效,请勿泄露于他人。

系统设置

配置接收发送短信的结果等,不需要的话就不用配置。

发送短信

先绑定测试手机号码,然后选择自己新建的签名/模板,点击调用API发送短信按钮后会跳转到示例代码。这里就直接选择测试签名/模板了。

下面为给出的示例代码:

// This file is auto-generated, don't edit it. Thanks.
package com.demo.sms;

import com.aliyun.tea.*;

public class Sample {

    /**
     * <b>description</b> :
     * <p>使用 AK&amp;SK 初始化账号 Client</p>
     *
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
        // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new com.aliyun.dysmsapi20170525.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.dysmsapi20170525.Client client = Sample.createClient();
        com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                .setSignName("阿里云短信测试")
                .setTemplateCode("SMS_154950909")
                .setPhoneNumbers("183xxxxxxxx")
                .setTemplateParam("{\"code\":\"1234\"}");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.sendSmsWithOptions(sendSmsRequest, runtime);
        } catch (TeaException error) {
            // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
            // 错误 message
            System.out.println(error.getMessage());
            // 诊断地址
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
            // 错误 message
            System.out.println(error.getMessage());
            // 诊断地址
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

代码依赖于阿里云短信 SDK:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dysmsapi20170525</artifactId>
    <version>3.0.0</version>
</dependency>

核心步骤为:

  1. 创建配置
  2. 设置签名、模板、手机号和模板中要用到的参数
  3. 发送短信
// 创建配置
public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
    com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
            .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
            .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    config.endpoint = "dysmsapi.aliyuncs.com";
    return new com.aliyun.dysmsapi20170525.Client(config);
}
// 设置签名、模板、手机号和模板中要用到的参数
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
        .setSignName("阿里云短信测试")
        .setTemplateCode("SMS_154950909")
        .setPhoneNumbers("183xxxxxxxx")
        .setTemplateParam("{\"code\":\"1234\"}");
// 发送短信
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
client.sendSmsWithOptions(sendSmsRequest, runtime);

注意第一步从环境中获取ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET变量来构建Config。这两个值(AccessKey ID 和 AccessKey Secret)是访问阿里云 API 的密钥:

参考:使用阿里云的短信服务发送短信

标签:集成,短信,models,dysmsapi20170525,aliyun,error,Java,com
From: https://www.cnblogs.com/Higurashi-kagome/p/18470905

相关文章

  • Java算法竞赛之HashMap常用API--哈西表!
    在Java算法竞赛中,HashMap是一个非常重要的数据结构,它提供了许多有用的API来方便地进行键值对的存储、检索和更新。除了getOrDefault方法外,HashMap还有其他一些常用的API。以下是一些主要的HashMapAPI及其在算法竞赛中的常见用法:put(Kkey,Vvalue)作用:将指定的键与值放入H......
  • SpringBoot集成 规则引擎Drools 快速入门
    规则引擎Drools一、drools1、引入问题某电商平台的促销活动,活动规则是根据⽤户购买订单的⾦额给⽤户送相应的积分,购买的越多送的积分越多用户购买的金额和对应送多少积分的规则如下:规则编号订单金额奖励积分1100元以下不加分2100元-500元加10分3500元-1000元加50......
  • 基于Java+Springboot+Vue开发的健身房管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的健身房管理系统项目,大学生可以在实践中学习和提升......
  • [数据集成/数据同步] 基于数据库增量日志的数据同步方案 : Flink CDC/Debezium/DataX/
    1概述简述:CDC/增量数据同步CDC的全称是ChangeDataCapture(增量数据捕获)在广义的概念上,只要能捕获数据变更的技术,我们都可以称为CDC。我们目前通常描述的CDC技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。CDC的技术实现方案基于查询......
  • Aubo Robotics 工业机器人系列编程:i10a_Aubo-i10a系统集成与项目管理
    Aubo-i10a系统集成与项目管理在工业机器人领域,系统集成与项目管理是确保机器人项目成功实施的关键步骤。本节将详细介绍Aubo-i10a工业机器人在系统集成和项目管理中的核心原理和具体操作,包括系统集成的步骤、项目管理的最佳实践以及相关的编程示例。系统集成概述系统集......
  • Java毕设项目案例实战II基于Spring Boot的科研项目验收管理系统(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着科研活动的日益增多,科研项目验收作为......
  • 一个标准java程序的创建和使用
    创建1.创建一个记事本,在记事本中写入JAVA代码2.另存为一个后缀为.java的文件,注意,文件名要与类名相同,且存储为ANSI文件 3.点击右键,从终端打开,然后按照如下图方法运行(cat查看文件内容) 命名规范:1.大驼峰:类名2.小驼峰:变量名,方法名,文件名,文件夹名3.全部大写:常量名字命......
  • Java毕设项目案例实战II基于Spring Boot的校园资产管理系统(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在信息化技术日益普及的今天,高效、智能的......
  • JAVA基础知识点
    C/C++速度快JAVA大型web开发,手机端安卓(JAVA是HTML的扩展)C# 中小型Web,桌面程序开发SHELL,VB操作指令Python数字处理,中小型网站PHP中小型网站Arrays.toString(args)对于importjava.util具有依赖作用JAVA特点:1)简单性//语法相较C更简易2)面向对象 3)分......
  • Java毕设项目案例实战II基于Spring Boot的在线互动学习网站(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着互联网技术的飞速发展,教育领域也迎来......