获取AWS SNS确认订阅令牌并将其作为参数传递给API

时间:2019-03-28 11:31:00

标签: java amazon-sns aws-java-sdk

我试图编写代码以将端点订阅到亚马逊简单通知服务中的某个主题。 订阅后,将确认邮件发送到端点电子邮件ID。

ConfigurationSet configurationSet = new ConfigurationSet().withName(configSetName);
CreateConfigurationSetRequest createConfigurationSetRequest = new CreateConfigurationSetRequest().withConfigurationSet(configurationSet);
amazonSES.createConfigurationSet(createConfigurationSetRequest);
CreateTopicRequest createTopicRequest = new CreateTopicRequest(topicName);
CreateTopicResult createTopicResult = amazonSNS.createTopic(createTopicRequest);
SubscribeRequest subscribeRequest = new SubscribeRequest(createTopicResult.getTopicArn(), "email", endPoint);
SubscribeResult subscribeResult = amazonSNS.subscribe(subscribeRequest);

要确认订阅,有两种方法  1.转到邮件,然后单击“确认订阅”  2.使用如下所示的ConfirmSubscription API

public void confirmSubscription(String token, String topicArn) {
     ConfirmSubscriptionRequest confirmSubscriptionRequest = new ConfirmSubscriptionRequest()
                .withTopicArn(topicArn)
                .withToken(token)
                .withAuthenticateOnUnsubscribe("ConfirmSubscriptionResult 
    ConfirmSubscriptionResult confirmSubscriptionResult = amazonSNS.confirmSubscription(confirmSubscriptionRequest);
}

在第二种方法中,我们需要一个令牌,该令牌是在单击“确认订阅”链接时生成的。 因此,我需要获取该令牌以将其作为参数传递给ConfirmSubscription()方法。 有什么办法吗? 单击邮件中的确认订阅时,可以设置调用rest api吗? 请帮助我

1 个答案:

答案 0 :(得分:1)

因此,我检索令牌的方式是使用代码进入发送给订阅用户的电子邮件,并从url链接中提取令牌。有点令人费解,但它有效。