人才招聘网站开发+源代码,网站开发数据库分析模板,苏州企业网站建设,做seo为什么要了解网站使用网页配置订阅 创建主题使用标准自定义名称其他默认 点击创建即可 创建订阅 订阅策略配置#xff08;不配置#xff0c;会推送给多个人#xff0c;除非你每个都创建主题#xff09; 注意#xff1a; 可以你可以随便写#xff0c;后面的值只能是对象使用标准自定义名称其他默认 点击创建即可 创建订阅 订阅策略配置不配置会推送给多个人除非你每个都创建主题 注意 可以你可以随便写后面的值只能是对象不然会报错 创建好订阅会给你配置的链接推送请求post请求text/plain 格式
body参数如下
{Type: SubscriptionConfirmation,MessageId: e67f028f-3392-4f8e-871e-d5f6c1de7256,Token:***,TopicArn: arn:aws:sns:us-west-1:180656209983:klover-test-topic,Message:***,SubscribeURL:https://sns.us-west-1.amazonaws.com/?***,SignatureVersion: 1,Signature:***,SigningCertURL: ***,
};确认订阅 1使用浏览器直接访问 SubscribeURL第四步返回的url 2使用页面订阅 在下面输入框输入 SubscribeURL第四步返回的url 6. 如果没有接收到确认订阅 可以选择再次发送
安装java jar包 dependencygroupIdsoftware.amazon.awssdk/groupIdartifactIdsns/artifactIdversion2.16.60/version/dependency使用 // 推送String message {\test\:1,\name\:\klover\};Sns.pubTopic(message); // 使用代码订阅Sns.subscribe(https://www.xxx.cn/api, https);工具类
package com.klover.sns;import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.*;import java.util.HashMap;
import java.util.Map;/*** Sns* a hrefhttps://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javav2/example_code/sns/src/main/java/com/example/sns/PublishTopic.javasns 代码/a** author klover* date 2024/3/28 15:05*/
public class Sns {private static final SnsClient snsClient;private static final String accessKeyId your access key id;private static final String secretAccessKey your secret access key;private static final String topicArn your topic ARN;static {AwsBasicCredentials credentials AwsBasicCredentials.create(accessKeyId,secretAccessKey);snsClient SnsClient.builder().region(Region.US_WEST_1).credentialsProvider(() - credentials).build();}/*** 推送消息** param message*/public static void pubTopic(String message) {try {// 通过筛选策略 指定推送者MapString, MessageAttributeValue map new HashMap();map.put(clientId, MessageAttributeValue.builder().dataType(String).stringValue(123456).build());PublishRequest request PublishRequest.builder().message(message).topicArn(topicArn).messageAttributes(map).build();PublishResponse result snsClient.publish(request);System.out.println(result.messageId() Message sent. Status is result.sdkHttpResponse().statusCode());} catch (SnsException e) {System.out.println(e.awsErrorDetails().errorMessage());}}/*** 订阅** param url* param protocol http https*/public static void subscribe(String url, String protocol) {try {SubscribeRequest request SubscribeRequest.builder().protocol(protocol).endpoint(url).returnSubscriptionArn(true).topicArn(topicArn).build();SubscribeResponse result snsClient.subscribe(request);System.out.println(Subscription ARN is result.subscriptionArn() \n\n Status is result.sdkHttpResponse().statusCode());// 设置筛选策略SetSubscriptionAttributesRequest subscriptionAttributesRequest SetSubscriptionAttributesRequest.builder().subscriptionArn(result.subscriptionArn()).attributeName(FilterPolicy) // 这个名称不能动.attributeValue({\clientId\: [\123457\]}) // 底层要求 必须是对象 这个字段可以自己自定义.build();SetSubscriptionAttributesResponse setSubscriptionAttributesResponse snsClient.setSubscriptionAttributes(subscriptionAttributesRequest);System.out.println(setSubscriptionAttributesResponse.sdkHttpResponse().statusCode());} catch (SnsException e) {System.out.println(e.awsErrorDetails().errorMessage());}}/*** 取消订阅**/public static void unsubscribe(String subscriptionArn) {try {UnsubscribeRequest request UnsubscribeRequest.builder().subscriptionArn(subscriptionArn).build();UnsubscribeResponse result snsClient.unsubscribe(request);System.out.println(\n\nStatus was result.sdkHttpResponse().statusCode() \n\nSubscription was removed for request.subscriptionArn());} catch (SnsException e) {System.err.println(e.awsErrorDetails().errorMessage());System.exit(1);}}
}
代码示例