amazon-aws 使用 SNS 发送短信
Posted feecy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 发送短信的主要内容,如果未能解决你的问题,请参考以下文章