版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bigtree_3721/article/details/84789626
前言:AWS Java SDK 地址
1)AWS java SDK 主页在 https://aws.amazon.com/tr/sdk-for-java/?nc1=h_ls
2)AWS 所有的Java SDK 的,maven仓库地址在:https://mvnrepository.com/artifact/com.amazonaws
下面是本例的信息:
1)首先:下载必要的AWS 开发包,如下所示:
如果你用maven来构建,则直接可以在pom.xml加入以下的配置就可以了
<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sns -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sns</artifactId>
<version>1.11.229</version>
</dependency>
AWS SNS 地址在:https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sns
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) {
ShortMessage shortMessage = new ShortMessage();
PublishResult publishResult = shortMessage.sendSMSMessage("+8613911088332", "trial SMS msg");
System.out.println(publishResult);
}
}