阿里云短信服务使用(Java)

文章目录

      • 一、流程
        • 1.打开短信服务
        • 2.提交材料申请资质
        • 3.资质通过后,申请短信签名并设置短信模板
        • 4.右上角设置AccessKey
        • 5.充值
      • 二、参考官方文档调用API
        • 1.引入maven依赖
        • 2.调用API
        • 补充

一、流程

1.打开短信服务

登陆注册阿里云
搜索“短信服务”,点击“免费开通”
在这里插入图片描述
在这里插入图片描述

2.提交材料申请资质

在这里插入图片描述

3.资质通过后,申请短信签名并设置短信模板

在这里插入图片描述
在这里插入图片描述
例如:
在这里插入图片描述

4.右上角设置AccessKey

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后将ID和密码保存下来后续会用
在这里插入图片描述
设置子用户权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
若之后AccessKey泄露,可将其禁用。
在这里插入图片描述

5.充值

发短信需要收费,要使用首先给账户充值
在这里插入图片描述


二、参考官方文档调用API

1.引入maven依赖
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dysmsapi20170525</artifactId>
    <version>2.0.24</version>
</dependency>
2.调用API

将下面代码中“必填”字段补充后进行测试。

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

import com.aliyun.tea.*;

public class Sample {

    /**
     * 使用AK&SK初始化账号Client
     * @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()
                .setAccessKeyId("") // 必填,ALIBABA_CLOUD_ACCESS_KEY_ID。
                .setAccessKeySecret("");// 必填,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()
                .setPhoneNumbers("") //必填,手机号
                .setSignName("") //必填,签名
                .setTemplateCode("") //必填,模板编号
                .setTemplateParam("{\"code\":\"666666\"}"); // 必填,验证码
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.sendSmsWithOptions(sendSmsRequest, new com.aliyun.teautil.models.RuntimeOptions());
        } 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);
        }        
    }
}

若仍有问题详见文档,点击跳转链接


补充

只能向已回复授权信息的手机号发送短信
在这里插入图片描述

详情点击跳转

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

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

相关文章

C语言操作符详解(二)

统计整数在二进制中1的个数&#xff1a; 这是上一篇文章留下的问题&#xff0c;这里为大家作答&#xff1a; //统计二进制中1的个数 int statistics(int a) {int count 0;for (int i 0; i < 32; i){if (a & 1){count;}a a >> 1;}//while (a)//{// a a &…

React(五)UseEffect、UseRef

(一)useEffect useEffect – React 中文文档 useEffect hook用于模拟以前的class组件的生命周期&#xff0c;但比原本的生命周期有着更强大的功能 1.类组件的生命周期 在类组件编程时&#xff0c;网络请求&#xff0c;订阅等操作都是在生命周期中完成 import React, { Co…

网安速成之选择题(详细解析版)

网安速成之选择题 单选多选 单选 密码学的目的是&#xff08; C &#xff09;。 A. 研究数据压缩 B. 研究数据解密 C. 研究数据保密 D. 研究漏洞扫描 密码学的目的是研究数据加密&#xff0c;保证数据的机密性 数据机密性安全服务的基础是&#xff08; D &#xff09;。 A. 数…

11.2 选择排序

目录 11.2 选择排序 11.2.1 算法特性 11.2 选择排序 选择排序&#xff08;selection sort&#xff09;的工作原理非常简单&#xff1a;开启一个循环&#xff0c;每轮从未排序区间选择最小的元素&#xff0c;将其放到已排序区间的末尾。 设数组的长度为 &#x1d45b;…

杂牌记录仪TS视频流恢复方法

大多数的记录仪都采用了MP4/MOV文件方案&#xff0c;极少数的可能在用AVI文件&#xff0c;极极少数的在用TS文件方案。很多人可能不太解TS文件&#xff0c;这是一种古老的视频文件结构&#xff0c;下边这个案例我们来看下TS视频文件的恢复方法。 故障存储:8G存储卡/fat32文件系…

pdb文件名称被修改导致pdb文件加载失败的实战排查案例分享

目录 1、概述 2、问题说明 3、pdb文件加载失败的可能原因有哪些&#xff1f; 4、使用!sym noisy打开pdb加载详情&#xff0c;发现pdb文件名称确实被修改了 5、Windbg是如何知道要加载pdb文件名称的&#xff1f; C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表…

五类数据容器对比总结 知道喔!

五类数据容器对比总结 1.五类数据容器的区别 是否支持下标索引 支持&#xff1a;列表、元组、字符串---序列类型 不支持&#xff1a;集合、字典---非序列类型 是否支持重复元素 支持&#xff1a;列表、元组、字符串---序列类型 不支持&#xff1a;集合、字典---非序列类型 是…

Ray Tracing in one Weekend But on CUDA

Ray Tracing in one Weekend But on CUDA 环境说明项目代码项目内容思路实现方法效果 环境说明 代码运行在Visual Studio 2019环境&#xff0c;显卡为NVIDIA GeForce GTX 1650&#xff0c;CUDA版本为11.6&#xff0c;cuDNN版本为8.4.0。具体配置方式见CUDA C/C 从入门到入土 第…

所有人都可以做的副业兼职,短剧推广,1天挣几百,附详细方法!

自从上次向大家介绍了短剧掘金项目以来&#xff0c;便陆续收到了众多朋友的询问&#xff1a;现在是否还能加入短剧掘金的大军&#xff1f;答案是肯定的。目前&#xff0c;无论是各大视频平台还是其他渠道&#xff0c;短剧掘金项目都呈现出蓬勃发展的态势。而且&#xff0c;相关…

Seq2Seq模型:详述其发展历程、深远影响与结构深度剖析

Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;模型是一种深度学习架构&#xff0c;专为处理从一个输入序列到一个输出序列的映射任务设计。这种模型最初应用于机器翻译任务&#xff0c;但因其灵活性和有效性&#xff0c;现已被广泛应用于自然语言处理&#xff08;NLP&a…

PageHelper多数据源无法自动切换数据源问题解决

在使用PageHelper进行分页处理的过程中&#xff0c;通过配置autoRuntimeDialect: true发现&#xff0c;在执行MySQL分页处理后&#xff0c;继续执行SqlServer的分页&#xff0c;使用的仍然是MySQL的语法&#xff0c;PageHelper并没有进行自动切换数据源处理。 在查看源码的时候…

Kaggle线上零售 CRM分析(RFM+BG-NBD+生存分析+PySpark)

数据集地址&#xff1a;数据集地址 我的NoteBook地址&#xff1a;NoteBook地址 这个此在线零售数据集包含2009年12月1日至2011年12月9日期间的在线零售的所有交易。该公司主要销售独特的各种场合礼品。这家公司的许多客户都是批发商。本文将通过pyspark对数据进行导入与预处理&…

TVS管的功率计算与选型

“选择多大功率的TVS管才算合适&#xff1f;”。关于TVS功率的选择&#xff0c;不晓得之前你考虑过没。反正我这边是感觉网上关于TVS管参数、选型等文章比较多&#xff0c;但关于TVS管功率计算及功率选型的文章比较少。但往往在这些点上更能体现面试者的功力。 研究过TVS规格书…

9-Django项目--验证码操作

目录 templates/login/login.html utils/code.py views/login.py 验证码 生成验证码 code.py 应用验证码 views.py login.html templates/login/login.html {% load static %} <!DOCTYPE html> <html lang"en"> <head><meta charset&q…

Polar Web【简单】login

Polar Web【简单】login 本文旨在记录此题的探索和解决过程。 Contents Polar Web【简单】login探索&思路EXP (python)结果&总结 探索&思路 查看源码&#xff0c;发现存在用户信息泄露。尝试用获取信息登录&#xff0c;显示成功&#xff0c;但其后没有可做的操作。…

【力扣】不相交的线

一、题目描述 二、题目解析 根据上图及题目给出的示例&#xff0c;我们不难发现&#xff0c;我们其实要找的就是两个数组中的最长公共子序列的长度。 因此&#xff0c;本题我们就可以直接转化为求两个数组中的最长公共子序列的长度。 对于 最长公共子序列问题&#xff0c;可…

Java Socket 网络编程实例(阻塞IO、非阻塞IO、多路复用Selector、AIO)

文章目录 1. 概述2. TCP 阻塞式IO 网络编程实例2.1 TCP网络编程服务端2.2 ByteBufferUtil2.3 客户端代码2.4 运行截图 3. TCP 非阻塞式IO 网络编程实例3.1 服务端3.2 客户端3.3 运行截图 4. 多路复用4.1 服务器端4.2 客户端4.3 运行截图 5. AIO5.1 AIO 服务端5.2 客户端5.3 运行…

【Python】Python异步编程

Python 异步编程 异步编程 异步编程是一种编程范式&#xff0c;通过非阻塞的方式执行任务&#xff0c;允许程序在等待某些操作&#xff08;如I/O操作、网络请求、数据库查询等&#xff09;完成时&#xff0c;继续执行其他任务。这与同步编程&#xff08;或阻塞编程&#xff09…

【图像处理与机器视觉】XJTU期末考点

题型 选择&#xff1a;1 分10 填空&#xff1a;1 分15 简答题&#xff08;也含有计算和画图&#xff09;&#xff1a;10 分*4 计算题&#xff1a;15 分20 分 考点 选择题&#xff08;部分&#xff09; 数字图像处理基础 p(x,y),q(s,t)两个像素之间的距离由公式&#xff1a…

知乎x-zse-96、x-zse-81

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…