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. 一、基础篇--1.1Java基础-反射的用途和实现

    https://blog.csdn.net/SongYuxinIT/article/details/81872066 反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的 ...

  2. 学习Linux的基础网站

    http://c.biancheng.net/view/726.html

  3. java基础笔记1--关于线程死锁

    关于线程死锁 什么是死锁: 在编写多线程的时候,必须要注意资源的使用问题,如果两个或多个线程分别拥有不同的资源, 而同时又需要对方释放资源才能继续运行时,就会发生死锁. 简单来说:死锁就是当一个或多个 ...

  4. hibernate中get和load区别

    在日常开发中,获取数据时必不可少的,这样就要用到get和load方法来实现了.下面简单说一下get和load的区别. 1.返回值不同 使用get方法检索数据时,没有该数据返回值为null. 而使用lo ...

  5. kafka多线程消费

    建立kafka消费类ConsumerRunnable ,实现Runnable接口: import com.alibaba.fastjson.JSON; import com.alibaba.fastj ...

  6. python每日一练:0011题

    第 0011 题: 敏感词文本文件 filtered_words.txt,里面的内容为以下内容,当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights. 北京 程序员 公 ...

  7. 操作系统安全 - 提权 - Windows提权 - 汇总

    CVE_2019-1388 Date: -- 影响范围: SERVER ====== Windows 2008r2 ** link OPENED AS SYSTEM ** Windows 2012r2 ...

  8. react-native的技巧

    按钮定制 給图片添加点击事件 <TouchableOpacity onPress={this.lookAlbum} style={{flex: 0, height: 40, width: 40, ...

  9. Xpath素材

    from lxml import etree text = """ <div> <ul> <li class="item-0&qu ...

  10. 太原fpxt招标

    5.31号13点多赶到太原,到yy公司,准备参加6.1号的jzfpxt投标,一起到yy山西分公司的还有北京yy总公司D工,Y工,W工等, D工负责标书及系统演示,我主要是根据D工的演示思路调整系统,演 ...