Java 集成阿里云发送短信

news/2024/10/21 16:39:30

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

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

新增资质

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

申请签名

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

申请模板

短信是基于模板的,模板中带有变量占位符,变量格式如${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/Dysmsapiconfig.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) {// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。// 错误 messageSystem.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);// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。// 错误 messageSystem.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 的密钥:

另:参考https://api.aliyun.com/product/Dysmsapi根据需要调整Config.endpoint

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/72418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

计量经济学(七)——时间序列GARCH模型

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 金融市场中的波动性建模是金融计量经济学的重要研究内容。时间序列数据,尤其是金融市场数据,往往表现出强烈的波动聚集现象,这意味着波动率在某些时期较高…

IDEA如何打开左右两个窗口方便代码对比

前言 我们在使用IDEA开发时,有时候会遇到一个问题,就是我们会想复制一个文件里面的好几处内容到另外一个文件中。但是这样会频繁的切换两个文件,也不太方便。这时,我们就可以用IDEA左右分别打开两个文件,左右对比着看。那么,我们应该如何操作呢? 如何操作 首先,我们把我…

Byteland, Berland and Disputed Cities

算法 贪心总结 对于最优非 dp 策略题 考虑分多钟可能的情况求最小值, 而不是死去推 dp

数据采集第一次作业

作业①: 要求:用requests和BeautifulSoup库方法定向爬取给定网址(http://www.shanghairanking.cn/rankings/bcur/2020)的数据,屏幕打印爬取的大学排名信息。 实现关键代码:点击查看代码 response = urllib.request.urlopen(url) html = response.read()# 使用BeautifulSou…

设计思想py 前置后置处理python脚本

from flask import Flask, request, jsonifyimport json app = Flask(__name__) # 用于存储前置和后置脚本pre_script = def pre_process(data): # 在这里编写你的前置处理逻辑 return data post_script = def post_process(response): # 在这里编写你的后置处理逻辑 …

Linux服务器上安装git(运维向)

(1).参考文献 官网在线教程:https://git-scm.com/book/zh/v2 官方网站:https://git-scm.com/ (2).实验环境 2核2G CentOS7.6.1810 (3).安装git1)yum或dnf安装[root@VM-0-17-centos ~]# dnf -y install git-all2)源码安装安装依赖包[root@VM-0-17-centos ~]# dnf -y install d…

公司网站怎么修改名称?后台网站标题怎么修改?

修改公司网站名称和后台网站标题的具体步骤会根据你使用的网站平台和技术栈有所不同。以下是几种常见情况下的操作方法: 1. 使用内容管理系统(CMS) WordPress登录后台:打开浏览器,输入你的WordPress后台地址,通常是 https://yourdomain.com/wp-admin。 输入用户名和密码登…

怎样修改网站公司名称?公司网站修改的方案?

修改网站上的公司名称涉及多个步骤,具体取决于网站的技术架构和内容管理系统(CMS)。以下是一般的修改方案:备份网站数据:在进行任何更改之前,确保对整个网站进行备份,包括数据库和文件系统,以防出现意外情况。更新数据库中的公司名称:如果网站使用数据库存储信息,需要…