jar-maven

<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sns -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sns</artifactId>
<version>1.11.475</version>
</dependency>

java:

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClientBuilder;
import com.amazonaws.services.sns.model.MessageAttributeValue;
import com.amazonaws.services.sns.model.PublishRequest;
import com.amazonaws.services.sns.model.PublishResult; import java.util.HashMap;
import java.util.Map; public class ShortMessage {
private Map<String, MessageAttributeValue> smsAttributes; public Map<String, MessageAttributeValue> getDefaultSMSAttributes() {
if (smsAttributes == null) {
smsAttributes = new HashMap<>();
smsAttributes.put("AWS.SNS.SMS.SenderID", new MessageAttributeValue()
.withStringValue("1")
.withDataType("String"));
smsAttributes.put("AWS.SNS.SMS.MaxPrice", new MessageAttributeValue()
.withStringValue("0.05")
.withDataType("Number"));
smsAttributes.put("AWS.SNS.SMS.SMSType", new MessageAttributeValue()
.withStringValue("Transactional")
.withDataType("String"));
}
return smsAttributes;
} public PublishResult sendSMSMessage(String phoneNumber, String message) {
return sendSMSMessage(phoneNumber, message, getDefaultSMSAttributes());
} public PublishResult sendSMSMessage(String phoneNumber, String message, Map<String, MessageAttributeValue> smsAttributes) {
AWSCredentials awsCredentials = new AWSCredentials() {
@Override
public String getAWSAccessKeyId() {
return "xxxxxxxx"; // 带有发短信权限的 IAM 的 ACCESS_KEY
} @Override
public String getAWSSecretKey() {
return "xxxxxxxx"; // 带有发短信权限的 IAM 的 SECRET_KEY
}
};
AWSCredentialsProvider provider = new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() {
return awsCredentials;
} @Override
public void refresh() {
}
};
AmazonSNS amazonSNS = null;
try {
amazonSNS = AmazonSNSClientBuilder.standard().withCredentials(provider).withRegion("us-east-1").build();
} catch (Exception e) { }
return amazonSNS.publish(
new PublishRequest()
.withMessage(message)
.withPhoneNumber(phoneNumber)
.withMessageAttributes(smsAttributes)
);
} public static void main(String[] args) {
//AmazonSNSClient client = new AmazonSNSClient(credentialsProvider);
//AWSCredentialsProviderChain chain = new AWSCredentialsProviderChain(credentialsProvider);
//chain.setReuseLastProvider(true);
//credentialsProvider.getCredentials();
ShortMessage shortMessage = new ShortMessage();
PublishResult publishResult = shortMessage.sendSMSMessage("+8613958942952", "test1");
System.out.println(publishResult);
} }

原文:https://blog.csdn.net/qq_33811662/article/details/80809849

amazon-aws 使用 SNS 发送短信的更多相关文章

  1. PHP发送短信功能

    发送短信的功能主要在于获得短信接口后,在函数中模仿用户行为,例如浏览器跳转输出短信接口的链接. 需要运用的函数为 curl_init(); curl_setopt(); curl_exec(); cu ...

  2. WPF MVVM下做发送短信小按钮

    最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...

  3. NetCore 阿里大于发送短信

    使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...

  4. android 中调用接口发送短信

    android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...

  5. Android 学习第13课,android 实现发送短信的功能

    1. 界面布局 界面代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  6. ios调用本地拨打电话,发送短信

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话   [[UIApplication sharedApplicat ...

  7. Android发送短信核心代码

    核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...

  8. Android发送短信

    // 发送短信 public void sendMsg(){ String content = edtSend.getText().toString(); SmsManager smsManager ...

  9. a标签的妙用-拨打电话、发送短信、发送邮件

    前端时间在做手机WAP网站时,遇到需要点击页面上显示的电话号能直接拨号的需求,查找资料发现可以使用html的a标签完美实现该需求!记录下来以备后用...... 目前主流手机浏览器对H5的支持已经很不错 ...

随机推荐

  1. wxs 及 获取节点 和 网络请求

    wxs:微信小程序脚本语言,结合 wxml 可以构建页面的结构 在 wxml 中使用 wxs wxs 中的注释 : 单行注释:// 多行注释:/* */ wxs 在页面中的用法 在页面中引用 wxs ...

  2. 什么是webpack以及为什么使用它

    什么是webpack以及为什么使用它 新建 模板 小书匠  在ES6之前,我们要想进行模块化开发,就必须借助于其他的工具.因为开发时用的是高级语法开发,效率非常高,但很可惜的是,浏览器未必会支持或认识 ...

  3. 使用pycharm编写python乱码

    开始总是乱码,该设置的都设置了,后来用charde检测编码也一直报错,之后重启了pycharm就好了,乱码问题也没了

  4. 如何选择EDM电子邮件服务提供商

    选择一家好的EDM电子邮件服务商非常重要,因为这可以让我们的EDM营销事半功倍,同时可以达到更好的营销效果.下面博主为大家介绍一下选择标准. 一.服务好不好. 这点很重要,当然这里的服务包括售前和售后 ...

  5. 测开之路一百五十一:ajax的作用和基本实现原理

    有些情况需要请求和刷新部分资源,但是又不希望整个页面都刷新,这个时候就需要用ajax来处理,即页面的某一部分触发请求和刷新内容 准备两个视图和html from flask import Flask, ...

  6. 用U盘完成win10系统的安装

    电脑太卡了,每次都要重装,然后每次忘记要从哪里开始动手,都要百度,仅以此篇记录下 目录 1.系统盘准备 2.从U盘启动安装 1.系统盘准备 第一步:在电脑中完成系统盘制作工具的安装,由于它是要依赖.n ...

  7. node-webkit-updater——NW.js自动更新

    NW.js自动更新三种方案: 1)node-webkit-updater(推荐) 2)nwjs-autoupdater 3)nw-autoupdater NW.js自动更新三种方案:[http://d ...

  8. Shadow安装

    1.Shadow插件的安装 http://shadow.github.io/ 这是shadow主页的网址,Shadow是一个开源的网络模拟器/仿真器,我们用它模拟Tor网络的运行状况.   1.1安装 ...

  9. C#采集:图灵机器人信息

    Dictionary<string, string> users = new Dictionary<string, string>(); users.Add("use ...

  10. 004-Django 关于 templates的部分操作

    Django 模版 {% %} 为django模版语言标签,用于加载文件 {{ }} 为django模版语言标签,用于定义显示变量 for循环 {% for user in users %} < ...