如何从Amazon SNS获取订阅ARN以取消订阅

时间:2016-04-04 11:19:21

标签: ios objective-c amazon-web-services amazon-sns

我正在使用Amazon SNS和Cognito来订阅和取消订阅某些设备的主题。

*请注意,可能存在类似的主题,但亚马逊不再使用该条款。

到目前为止,非常好......

但是为了从主题中取消订阅设备,我需要传递我无法在应用程序中找到的订阅ARN。

订阅ARN由主题ARN(我知道)和亚马逊生成的字母数字字符串(我不知道)制作。

此代码:

AWSSNSUnsubscribeInput *input = [[AWSSNSUnsubscribeInput alloc] init];
input.subscriptionArn = @"arn:aws:sns:XXXXXXXX-YYYYYYYYYYYYYYYYYYYY-ZZZZZZZZZZZZZ";

NSLog(@"Input subscription: %@", input.subscriptionArn);

[sns unsubscribe: input completionHandler:^(NSError * _Nullable error) {
    if (error) {
        NSLog(@"Error occurred: [%ld]", error.code);
    }
    else {
        NSLog(@"Success");
    }
}];

如果我从AWS控制台获得订阅ARN,它可以正常工作,但在App中我无法查询或生成该字段。

我想有一个随处可见,但到目前为止我无法获得任何成功的方法。我该如何着手完成这项工作?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

主题ARN呼叫[sns listSubscriptionsByTopic: input]。响应将包含该主题的所有订阅的列表,包括订阅ARN。您必须在响应中使用owner属性才能找到要传递给unsubscribe的特定订阅。

答案 1 :(得分:0)

我最终带来的东西:

" ListSubscriptions"或" ListSubscriptionsByTopic" API操作应该返回订阅ARN:

http://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.html http://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptionsByTopic.html