aws短信发送java_amazon-aws 使用 SNS 发送短信

该博客展示了如何使用Java AWS SDK与SNS(Simple Notification Service)服务交互,以发送短信。代码示例中创建了`ShortMessage`类,设置短信属性,包括发送者ID、最大价格和短信类型,并提供了发送短信的方法,通过指定电话号码和消息内容来调用AWS SNS服务。
摘要由CSDN通过智能技术生成

importcom.amazonaws.auth.AWSCredentials;importcom.amazonaws.auth.AWSCredentialsProvider;importcom.amazonaws.services.sns.AmazonSNS;importcom.amazonaws.services.sns.AmazonSNSClientBuilder;importcom.amazonaws.services.sns.model.MessageAttributeValue;importcom.amazonaws.services.sns.model.PublishRequest;importcom.amazonaws.services.sns.model.PublishResult;importjava.util.HashMap;importjava.util.Map;public classShortMessage {private MapsmsAttributes;public MapgetDefaultSMSAttributes() {if (smsAttributes == null) {

smsAttributes= new HashMap<>();

smsAttributes.put("AWS.SNS.SMS.SenderID", newMessageAttributeValue()

.withStringValue("1")

.withDataType("String"));

smsAttributes.put("AWS.SNS.SMS.MaxPrice", newMessageAttributeValue()

.withStringValue("0.05")

.withDataType("Number"));

smsAttributes.put("AWS.SNS.SMS.SMSType", newMessageAttributeValue()

.withStringValue("Transactional")

.withDataType("String"));

}returnsmsAttributes;

}publicPublishResult sendSMSMessage(String phoneNumber, String message) {returnsendSMSMessage(phoneNumber, message, getDefaultSMSAttributes());

}public PublishResult sendSMSMessage(String phoneNumber, String message, MapsmsAttributes) {

AWSCredentials awsCredentials= newAWSCredentials() {

@OverridepublicString getAWSAccessKeyId() {return "xxxxxxxx"; //带有发短信权限的 IAM 的 ACCESS_KEY

}

@OverridepublicString getAWSSecretKey() {return "xxxxxxxx"; //带有发短信权限的 IAM 的 SECRET_KEY

}

};

AWSCredentialsProvider provider= newAWSCredentialsProvider() {

@OverridepublicAWSCredentials getCredentials() {returnawsCredentials;

}

@Overridepublic voidrefresh() {

}

};

AmazonSNS amazonSNS= null;try{

amazonSNS= AmazonSNSClientBuilder.standard().withCredentials(provider).withRegion("us-east-1").build();

}catch(Exception e) {

}returnamazonSNS.publish(newPublishRequest()

.withMessage(message)

.withPhoneNumber(phoneNumber)

.withMessageAttributes(smsAttributes)

);

}public static voidmain(String[] args) {//AmazonSNSClient client = new AmazonSNSClient(credentialsProvider);//AWSCredentialsProviderChain chain = new AWSCredentialsProviderChain(credentialsProvider);//chain.setReuseLastProvider(true);//credentialsProvider.getCredentials();

ShortMessage shortMessage = newShortMessage();

PublishResult publishResult= shortMessage.sendSMSMessage("+8613958942952", "test1");

System.out.println(publishResult);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值