登录阿里云官网并注册
阿里云官网:阿里云-计算,为了无法计算的价值
点击登录注册
搜索:短信服务->选择短信控制台
之后选择快速学习和测试,根据快速学习的指引完成新增资质-申请签名-申请模板,这三个申请下来后,绑定你需要测试发送的手机号。
以上操作完成后,点击右上角头像,选择AccessKey管理。
创建AccessKey,建议创建子用户
记得添加权限后使用
如果继续使用AccessKey创建(!!!记得保存好AccessKey Secret)
之后就可以在IDAE中测试了,下面是简单的例子
首先导包
maven
<dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20170525</artifactId> <version>2.0.24</version> </dependency>
之后源代码,根据代码中所给提示填写必要的参数
(可以直接拷贝官方模板,如图)
Sample.java
public class Sample { /** * 使用AK&SK初始化账号Client * @param accessKeyId * @param accessKeySecret * @return Client * @throws Exception */ public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception { com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() // 必填,您的 AccessKey ID .setAccessKeyId("") // 必填,您的 AccessKey Secret .setAccessKeySecret(""); // 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_); // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html com.aliyun.dysmsapi20170525.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest() //发送手机号,注意测试需要使用已经注册的测试手机号 .setPhoneNumbers("") //填写你的签名 .setSignName("") //填写你的模板CODE .setTemplateCode(""); //填写参数 .setTemplateParam(""); com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); try { // 复制代码运行请自行打印 API 的返回值 SendSmsResponse s=client.sendSmsWithOptions(sendSmsRequest, runtime); //可以用debug查看返回值,判断短信是否发送成功 System.out.println(s.getBody()); } catch (TeaException error) { // 如有需要,请打印 error com.aliyun.teautil.Common.assertAsString(error.message); } catch (Exception _error) { TeaException error = new TeaException(_error.getMessage(), _error); // 如有需要,请打印 error com.aliyun.teautil.Common.assertAsString(error.message); } } }
代码可能会出现SLF4J报错,可以添加下列代码解决(注意两个包版本(${slf4j.version})需要一致)
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${slf4j.version}</version> <type>jar</type> </dependency>
最后进行测试
发送成功
附加一点
注意短信余量,申请的个体用户可以免费领100条.