【问题标题】:AWS Pinpoint/SNS: Two-way SMS unsubscribe/resubscribe implementationAWS Pinpoint/SNS:双向 SMS 取消订阅/重新订阅实施
【发布时间】:2021-01-12 18:08:56
【问题描述】:

我在使用 AWS Pinpoint 和 SNS 实施双向 SMS 取消订阅/重新订阅时遇到了一些问题。

用例:
在收集到用户的号码后,他会收到一条确认短信。他回复 YES 关键字以选择加入 SMS 列表。他稍后可能会通过使用 STOP 关键字回复来选择退出。选择退出后,他仍然可以选择通过回复 START 关键字来重新订阅。此外,即使在重新订阅后,他也可以选择通过回复 STOP 关键字再次取消订阅,等等。

当前实施:
与文档 (https://docs.aws.amazon.com/pinpoint/latest/developerguide/tutorials-two-way-sms.html) 中给出的示例类似,我有一个订阅 SNS 主题的 lambda 函数,它处理 YES 和 START 关键字。对 STOP(和 HELP)关键字的响应由 AWS Pinpoint 处理。

  1. 收集用户号码后,后端为用户号码创建一个精确端点,向他发送确认短信,并将端点退出状态更新为 ALL。
  2. 用户回复 YES,他的回复由 lambda 处理,该 lambda 将端点选择退出状态更新为 NONE。
  3. 用户使用 STOP 回复,他的回复由 pinpoint 处理,这会自动选择他退出。
  4. 用户使用 START 回复,他的回复由 lambda 处理,该 lambda 将端点退出状态更新为 NONE。

我需要有关以下查询的帮助:

  1. 在上述实施的第 3 步中,我注意到用户的号码被添加到 SNS 退出列表(从 AWS 控制台检查),但他的精确端点退出状态(从 aws-检查) cli) 仍然设置为 NONE 而不是 ALL。正如预期的那样,我无法向该用户发送短信。正如我所观察到的,是否为 pinpoint 和 SNS 维护了两个单独的退出状态?如果是,是否有关于它们如何更新的深入文档?
  2. 在上述实施的第 4 步中,我注意到用户的号码并未从 SNS 退出列表中删除,并且他的精确端点退出状态保持为 NONE。与预期的行为不同,我仍然无法向该用户发送 SMS。我是否正确执行重新订阅?

请回答问题并指导我正确实施我的用例。

【问题讨论】:

    标签: amazon-web-services sms amazon-sns unsubscribe aws-pinpoint


    【解决方案1】:

    经过进一步探索,这是我发现的-

    观察

    1. 如果不使用 pinpoint 并且用户的号码显示在 SNS 退出列表中,则通过 SNS 发布消息发送的消息将不会被传递。
    2. 无论是否使用 pinpoint,来自用户的传入 SMS 始终通过 SNS 并检查退出关键字,如 STOP, END, CANCEL, etc。如果找到退出关键字,则该号码始终添加到 SNS 退出列表中。 (Further reading)
    3. 如果针对精确长代码的“自我管理退出”选项被禁用并且用户的号码显示在 SNS 退出列表中,
      1. 无法为该号码创建新的精确端点。
      2. 通过现有 pinpoint 端点为该号码发送的消息将不会被传递。
      3. 通过 SNS 发布消息发送的消息将不会被传递。
    4. 如果针对精确长代码启用了“自我管理退出”选项,并且用户的号码显示在 SNS 退出列表中,
      1. 前面几点3.1。和 3.2。仍然成立。
      2. 尽管已将号码添加到 SNS 退出列表,但由于启用了“自行管理退出”,通过 SNS 发布消息发送的消息将被传递。

    问题原因

    在我的例子中,“自我管理的退出”选项被禁用,这就是为什么确定端点退出状态无关紧要,而 SNS 退出列表优先。

    解决方案

    1. 如上所示,禁用“自我管理选择退出”不满足我的要求。所以我启用了它。
    2. 无法使用精确端点,因为 SNS 退出列表总是优先。
    3. 最后,我只是使用 pinpoint 来获取带有双向 SMS 和启用“自我管理选择退出”的长代码。我正在使用 SNS 发布消息而不是精确端点来发送消息。
    4. 现在我正在使用“自我管理的退出”,这里需要注意的一件重要事情是 - 我在我的后端维护每个用户号码的退出状态并处理传出消息传递允许/在中间件级别拒绝。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 2018-04-19
      相关资源
      最近更新 更多