短信服务是阿里云为用户提供的一种通信服务的能力,分为国内短信和国际/港澳台短信服务。本文介绍如何快速使用阿里云OpenAPI开发者门户或阿里云SDK完成常见操作,例如添加短信签名、添加短信模板、发送短信服务和查询短信发送详情等,将指定信息发送至国内或境外手机号码。
背景信息
调用API时,您可以根据API文档了解使用说明,并查询必选的请求参数。发送请求后报错时,您可以在相应API文档中获取错误码说明。 查看更多视频调用方式
- OpenAPI开发者门户示例:如果您经常使用交互式操作界面,或者您是初次使用阿里云产品的开发者用户,可选用此方式。您可以在OpenAPI开发者门户中调试和获取SDK请求示例,详情请参见阿里云 OpenAPI 开发者门户是什么。
- Java SDK示例:适用于SDK编码场景。使用升级版Java SDK要求您已提前安装Java 8或以上版本,安装详情请参见安装与使用教程。其他编程语言SDK,请参见短信服务SDK。
使用须知
使用短信服务前,请了解以下注意事项:- 仅当短信签名的适用场景为通用时,国内短信和国际/港澳台短信可以共用此签名,无需分别添加。
- 国内短信模板与国际/港澳台短信模板不通用,请根据实际业务情况分别添加、使用。
- 填写签名、模板申请信息时,请正确选择签名适用场景、模板类型,详细描述已上线业务的使用场景,并提供可以验证这些业务的网站链接、已备案域名地址、应用市场下载链接、公众号或小程序全称等信息。对于登录场景,还需提供测试账号密码。信息完善的申请说明会提高签名、模板的审核效率。
- 短信签名和短信模板均需审核通过后方可使用。
准备工作
OpenAPI开发者门户示例
调用API发送短信的全流程如下所示:
- 通过AddSmsSign添加短信签名。
- 通过AddSmsTemplate添加短信模板。
- 分别通过QuerySmsSign、QuerySmsTemplate查看短信签名和短信模板的审核状态。
- 通过SendSms发送短信,您也可以通过SendBatchSms批量发送短信。
- 通过QuerySendDetails查询短信发送详情。
Java SDK示例
以AddSmsTemplate为例,演示如何通过阿里云SDK调用短信服务API。示例代码中的下列参数需要您根据实际情况自行填写。- AccessKeyId:您的AccessKey ID。
- AccessKeySecret:您的AccessKey Secret。
- TemplateType:短信模板类型。
- TemplateName:短信模板名称。
- TemplateContent:短信模板内容。
- Remark:短信模板申请说明。
import com.alibaba.fastjson.JSONObject; import com.aliyun.dysmsapi20170525.models.*; import com.aliyun.teaopenapi.models.*; public class AddSmsTemplate { public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception { Config config = new Config() // 您的AccessKey ID .setAccessKeyId(accessKeyId) // 您的AccessKey Secret .setAccessKeySecret(accessKeySecret); // 访问的域名 config.endpoint = "dysmsapi.aliyuncs.com"; return new com.aliyun.dysmsapi20170525.Client(config); } public static void main(String[] args_) throws Exception { java.util.List args = java.util.Arrays.asList(args_); com.aliyun.dysmsapi20170525.Client client = Sample.createClient("accessKeyId", "accessKeySecret"); AddSmsTemplateRequest addSmsTemplateRequest = new AddSmsTemplateRequest() .setTemplateType(0) .setTemplateName("content3") .setTemplateContent("您正在申请手机注册,验证码为:${code},5分钟内有效!") .setRemark("用于文件下载时的验证码"); // 复制代码运行请自行打印API的返回值 client.addSmsTemplate(addSmsTemplateRequest); AddSmsTemplateResponse response=client.addSmsTemplate(addSmsTemplateRequest); System.out.println(JSONObject.toJSONString(response)); }更多示例,请参见OpenAPI开发者门户。
原版SDK的安装流程及代码示例,请参见Java SDK。