【问题标题】:Amazon SNS Mobile Push - how to bulk subscribe endpoints to a topic?Amazon SNS 移动推送 - 如何批量订阅主题的终端节点?
【发布时间】:2014-01-06 21:01:51
【问题描述】:

我正在尝试将现有的 iOS 推送通知基础架构转移到亚马逊 SNS 移动推送。

我将所有令牌从本地数据库导出到 SNS 应用程序(使用 CSV)。现在我想向我所有的 10,000 个用户发送推送通知。我认为唯一的方法是创建一个主题并将所有用户订阅到该主题,然后向该主题发布消息。

有没有什么简单的方法可以让我导入系统的10000个用户都订阅一个主题?

感谢您的帮助!

【问题讨论】:

    标签: ios amazon-web-services push-notification apple-push-notifications amazon-sns


    【解决方案1】:

    听起来您已经创建了 Amazon SNS 平台应用程序并将您的令牌导入为 Amazon SNS 平台终端节点。

    您要发送什么样的通知?

    • 如果您向每个用户发送自定义消息,请使用 Direct Addressing。使用这种方法,您 Publish 给每个EndpointARN

    • 如果您向所有用户发送相同的消息,请使用主题。您需要为您的端点订阅一个主题。当你准备好发送时,PublishTopicARN。 Amazon SNS 将处理发送到订阅该主题的所有终端节点。 Amazon SNS 目前不提供批量订阅 API,因此您必须为每个 EndpointARN 调用一次 Subscribe

    完全披露:我在 Amazon SNS 上为 AWS 工作。

    【讨论】:

    • 每个主题的订阅人数限制为 10.000。处理这种情况的最佳方法是什么,因为我不想在多个主题中注册相同的令牌(当我向所有主题发送通知时,一些用户会收到多个推送)
    • 在我的应用程序中,每次应用程序启动时我都会注册设备令牌。此设备令牌将自动添加到主题中。假设用户 A 已经在主题 1 中注册。主题 1 现在有超过 10.000 个用户,因此我必须创建主题 2。现在用户 A 再次启动应用程序,我的应用程序再次将令牌注册到我的后端(现在在主题 2 中)。现在用户 A 在我的主题 1 和主题 2 中都有他的令牌。当我向主题 1 和 2 发送推送时,用户 A 将收到 2 个相同的推送。我无法检查令牌是否已注册,因为没有搜索Topic的api。希望你能理解我的解释
    • 如 SNS 常见问题解答中所述:“默认情况下,SNS 为每个主题提供 1000 万个订阅,每个帐户提供 3,000 个主题。”所以我认为10000的问题已经消失了。
    • 嗨@RohanDeshpande,有没有关于这个功能什么时候可用的消息?
    • @ericpeters0n 移动端点do not need to be confirmed.
    【解决方案2】:

    不幸的是,到目前为止还没有办法...请参阅 AWS 论坛上的 Bulk push endpoints subscription to a topic

    你好,兰格维森特,

    感谢此功能请求。我已将此反馈给 SNS 服务团队进行审核。

    最好的问候, 菲尔普

    【讨论】:

      【解决方案3】:

      现在可以通过为移动端点订阅主题来实现这一点。增加了默认订阅者限制。

      问:主题数量或订阅者数量是否有限制 每个主题?

      默认情况下,SNS 为每个主题提供 1000 万订阅,以及 3000 每个帐户的主题。要申请更高的限额,请通过以下方式联系我们 在http://aws.amazon.com/support

      http://aws.amazon.com/sns/faqs/?nc2=h_ls

      【讨论】:

      • 操作询问“如何批量订阅某个主题的端点”而不是订阅限制是多少
      【解决方案4】:

      如果您有一个充满端点的应用程序,您希望批量订阅 SNS 主题,您可以通过 AWS SNS 控制面板通过以下方式进行:

      1. 在 SNS 中访问该应用程序
      2. 等待底部的“总项目”计数完成(即列出所有项目)
      3. 选中端点列表上方的全选复选标记(附截图)
      4. 点击平台操作 > 订阅端点到主题
      5. 输入您的主题 ARN 并点击创建订阅

      该过程将开始,它将停止您的 Web 浏览器,但请顺其自然,因为这需要时间,如果您希望看到对该主题的订阅增加,您可以使用 AWS CLI:

       aws sns get-topic-attributes --topic-arn "[YOUR TOPIC ARN]"
      

      注意“SubscriptionsConfirmed”值

      【讨论】:

      • 真的有用吗?我已经这样做了,所以我们得到了 30k+ arns 并尝试订阅一个主题。在创建订阅后,我检查了选项卡主题并查看 arn 订阅计数是否与应用程序选项卡中的项目计数相同。但似乎我需要多次(创建订阅)来订阅所有端点。每个过程中订阅的增加就像 200-500 个端点。有人可以确认吗?
      • 它有效。我用超过 40k 完成,但我一次用大约 2k 完成。一击不到 40k
      • 这对我不起作用。我没有看到选择所有端点的选项...也许 AWS 在此期间更改了其 UI?
      【解决方案5】:

      是的,但需要注意的是:他们每个人都必须接受您的努力才能将他们注册到推送消息中。这意味着对于您数据库中的每个令牌,每个人都必须同意接收您未来的消息(即通过 SMS 和电子邮件)。

      每个地址(电话号码、电子邮件)都成为一个端点,您可以使用 SNS 创建一个主题,然后订阅每个端点。在向每个端点(您列表中的人)发送确认电子邮件后,他们必须确认,才能开始通过文本或电子邮件接收您的消息流。

      很遗憾,此确认/同意事件很冒险,必须正确处理。您的 ARN 标题必须简洁(通过 SMS 发送 7 个字母,不允许使用主题行)。因此,您必须使用他们能够识别的名称通过 SMS 与他们联系(SMS 消息将通过短代码、304 等方式到达),并且可以被拒绝和/或阻止。

      不简单!最好通过移动应用程序使用推送消息进行调查。这将避免令人垂涎的短信空间,但您可能会考虑对电子邮件和/或短信进行轰炸,以便让他们使用您的移动应用程序。显然,鉴于 SMS 的即时性,人们将在 20 秒内阅读您的第一个确认信息。这可能是一件好事,如果他们确认,然后接受您未来的消息。

      我现在就在做这件事,并准备使用我最初的爆炸来认出名字——创建匿名 SMS 的应用程序将被 iTunes 禁止!

      【讨论】:

      • 问题是关于 iOS 推送通知而不是 SMS 或电子邮件。
      猜你喜欢
      • 2016-06-27
      • 2016-09-03
      • 2015-01-14
      • 2015-09-26
      • 1970-01-01
      • 2018-02-27
      • 2013-08-14
      • 2014-02-23
      • 1970-01-01
      相关资源
      最近更新 更多