jar-maven

  1. <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sns -->
  2. <dependency>
  3. <groupId>com.amazonaws</groupId>
  4. <artifactId>aws-java-sdk-sns</artifactId>
  5. <version>1.11.475</version>
  6. </dependency>

java:

  1. import com.amazonaws.auth.AWSCredentials;
  2. import com.amazonaws.auth.AWSCredentialsProvider;
  3. import com.amazonaws.services.sns.AmazonSNS;
  4. import com.amazonaws.services.sns.AmazonSNSClientBuilder;
  5. import com.amazonaws.services.sns.model.MessageAttributeValue;
  6. import com.amazonaws.services.sns.model.PublishRequest;
  7. import com.amazonaws.services.sns.model.PublishResult;
  8.  
  9. import java.util.HashMap;
  10. import java.util.Map;
  11.  
  12. public class ShortMessage {
  13. private Map<String, MessageAttributeValue> smsAttributes;
  14.  
  15. public Map<String, MessageAttributeValue> getDefaultSMSAttributes() {
  16. if (smsAttributes == null) {
  17. smsAttributes = new HashMap<>();
  18. smsAttributes.put("AWS.SNS.SMS.SenderID", new MessageAttributeValue()
  19. .withStringValue("1")
  20. .withDataType("String"));
  21. smsAttributes.put("AWS.SNS.SMS.MaxPrice", new MessageAttributeValue()
  22. .withStringValue("0.05")
  23. .withDataType("Number"));
  24. smsAttributes.put("AWS.SNS.SMS.SMSType", new MessageAttributeValue()
  25. .withStringValue("Transactional")
  26. .withDataType("String"));
  27. }
  28. return smsAttributes;
  29. }
  30.  
  31. public PublishResult sendSMSMessage(String phoneNumber, String message) {
  32. return sendSMSMessage(phoneNumber, message, getDefaultSMSAttributes());
  33. }
  34.  
  35. public PublishResult sendSMSMessage(String phoneNumber, String message, Map<String, MessageAttributeValue> smsAttributes) {
  36. AWSCredentials awsCredentials = new AWSCredentials() {
  37. @Override
  38. public String getAWSAccessKeyId() {
  39. return "xxxxxxxx"; // 带有发短信权限的 IAM 的 ACCESS_KEY
  40. }
  41.  
  42. @Override
  43. public String getAWSSecretKey() {
  44. return "xxxxxxxx"; // 带有发短信权限的 IAM 的 SECRET_KEY
  45. }
  46. };
  47. AWSCredentialsProvider provider = new AWSCredentialsProvider() {
  48. @Override
  49. public AWSCredentials getCredentials() {
  50. return awsCredentials;
  51. }
  52.  
  53. @Override
  54. public void refresh() {
  55. }
  56. };
  57. AmazonSNS amazonSNS = null;
  58. try {
  59. amazonSNS = AmazonSNSClientBuilder.standard().withCredentials(provider).withRegion("us-east-1").build();
  60. } catch (Exception e) {
  61.  
  62. }
  63. return amazonSNS.publish(
  64. new PublishRequest()
  65. .withMessage(message)
  66. .withPhoneNumber(phoneNumber)
  67. .withMessageAttributes(smsAttributes)
  68. );
  69. }
  70.  
  71. public static void main(String[] args) {
  72. //AmazonSNSClient client = new AmazonSNSClient(credentialsProvider);
  73. //AWSCredentialsProviderChain chain = new AWSCredentialsProviderChain(credentialsProvider);
  74. //chain.setReuseLastProvider(true);
  75. //credentialsProvider.getCredentials();
  76. ShortMessage shortMessage = new ShortMessage();
  77. PublishResult publishResult = shortMessage.sendSMSMessage("+8613958942952", "test1");
  78. System.out.println(publishResult);
  79. }
  80.  
  81. }

原文: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. Centos 建一个指定大小的文件夹

    1.使用ramdisklinux可以把一部分内存mount为分区使用,通常为称为ramdisk,分为ramdisk, ramfs, tmpfs.可以一条命令实现我们的需求:mount none tes ...

  2. 下载vuejs,Hello Vue(vscode)

    下载vuejs,Hello Vue(vscode) Hello Vue 下载使用vue.js 动图演示 Vue的基本使用步骤  传送门:https://cn.vuejs.org/v2/guide/in ...

  3. linux 系统环境变量配置

    使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题 ...

  4. RequestMapping 注解的解析、匹配、注册

    RequestMapping 注解的解析.匹配.注册 1)创建 RequestMappingHandlerMapping 实例时会触发 afterPropertiesSet 调用. 2)读取容器中所有 ...

  5. python - assert 断言 语句

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单. 用法:在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行时崩溃,不如在出现 ...

  6. Python基本语法_文件操作_读写函数详解

    目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...

  7. shell脚本批量开启防火墙端口

    # 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed ...

  8. 机器学习【一】K最近邻算法

    K最近邻算法 KNN 基本原理 离哪个类近,就属于该类   [例如:与下方新元素距离最近的三个点中,2个深色,所以新元素分类为深色] K的含义就是最近邻的个数.在sklearn中,KNN的K值是通过n ...

  9. 【Qt开发】【Linux开发】调试记录:QFontDatabase::loadFromCache Error

    最近做嵌入式的Qt界面,在移植成功后遇到了一个问题:QFontDatabase::loadFromCache: Font path doesn't match.后面跟着便是两个路径. 解决方案就是对比 ...

  10. rename批量修改文件名

    批量改名: 如文件,批量修改,把hello去掉[root@localhost wang]# ll-rw-r--r-- 1 root root 0 5月 14 02:36 a.hello.txt-rw- ...