amazon-aws 使用 SNS 发送短信
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 发送短信的更多相关文章
- PHP发送短信功能
发送短信的功能主要在于获得短信接口后,在函数中模仿用户行为,例如浏览器跳转输出短信接口的链接. 需要运用的函数为 curl_init(); curl_setopt(); curl_exec(); cu ...
- WPF MVVM下做发送短信小按钮
最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...
- NetCore 阿里大于发送短信
使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...
- android 中调用接口发送短信
android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...
- Android 学习第13课,android 实现发送短信的功能
1. 界面布局 界面代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
- ios调用本地拨打电话,发送短信
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicat ...
- Android发送短信核心代码
核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...
- Android发送短信
// 发送短信 public void sendMsg(){ String content = edtSend.getText().toString(); SmsManager smsManager ...
- a标签的妙用-拨打电话、发送短信、发送邮件
前端时间在做手机WAP网站时,遇到需要点击页面上显示的电话号能直接拨号的需求,查找资料发现可以使用html的a标签完美实现该需求!记录下来以备后用...... 目前主流手机浏览器对H5的支持已经很不错 ...
随机推荐
- Centos 建一个指定大小的文件夹
1.使用ramdisklinux可以把一部分内存mount为分区使用,通常为称为ramdisk,分为ramdisk, ramfs, tmpfs.可以一条命令实现我们的需求:mount none tes ...
- 下载vuejs,Hello Vue(vscode)
下载vuejs,Hello Vue(vscode) Hello Vue 下载使用vue.js 动图演示 Vue的基本使用步骤 传送门:https://cn.vuejs.org/v2/guide/in ...
- linux 系统环境变量配置
使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题 ...
- RequestMapping 注解的解析、匹配、注册
RequestMapping 注解的解析.匹配.注册 1)创建 RequestMappingHandlerMapping 实例时会触发 afterPropertiesSet 调用. 2)读取容器中所有 ...
- python - assert 断言 语句
使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单. 用法:在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行时崩溃,不如在出现 ...
- Python基本语法_文件操作_读写函数详解
目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...
- shell脚本批量开启防火墙端口
# 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed ...
- 机器学习【一】K最近邻算法
K最近邻算法 KNN 基本原理 离哪个类近,就属于该类 [例如:与下方新元素距离最近的三个点中,2个深色,所以新元素分类为深色] K的含义就是最近邻的个数.在sklearn中,KNN的K值是通过n ...
- 【Qt开发】【Linux开发】调试记录:QFontDatabase::loadFromCache Error
最近做嵌入式的Qt界面,在移植成功后遇到了一个问题:QFontDatabase::loadFromCache: Font path doesn't match.后面跟着便是两个路径. 解决方案就是对比 ...
- rename批量修改文件名
批量改名: 如文件,批量修改,把hello去掉[root@localhost wang]# ll-rw-r--r-- 1 root root 0 5月 14 02:36 a.hello.txt-rw- ...