У меня возникли проблемы при реализации двусторонней отмены / повторной подписки по SMS с помощью AWS Pinpoint и SNS.
Пример использования:
После сбора номера пользователя он получает подтверждающее SMS. Он отвечает ключевым словом YES, чтобы подписаться на список SMS. Позже он может отказаться, ответив с ключевым словом STOP. После отказа у него все еще есть возможность возобновить подписку, ответив с ключевым словом START. Более того, даже после повторной подписки у него есть возможность снова отказаться от подписки, ответив ключевым словом STOP и так далее.
Текущая реализация:
Подобно примеру, приведенному в документации (https://docs.aws.amazon.com/pinpoint/latest/developerguide/tutorials-two-way-sms.html), у меня есть лямбда-функция, подписанная на тему SNS, которая обрабатывает ключевые слова YES и START. Ответы на ключевые слова STOP (и HELP) обрабатываются AWS Pinpoint.
- После сбора номера пользователя серверная часть создает точную конечную точку для номера пользователя, отправляет ему подтверждающее SMS-сообщение и обновляет статус отказа конечной точки до ВСЕ.
- Пользователь отвечает YES, его ответ обрабатывается лямбда, который обновляет статус отказа конечной точки до NONE.
- Пользователь отвечает STOP, его ответ обрабатывается функцией pinpoint, которая автоматически отключает его.
- Пользователь отвечает START, его ответ обрабатывается лямбда, который обновляет статус отказа конечной точки до NONE.
Мне нужна помощь по следующим вопросам:
- На шаге 3 вышеупомянутой реализации я заметил, что номер пользователя добавляется в список отказа от участия в SNS (как проверено в Консоли AWS), но его статус отказа от точной конечной точки (как проверено с помощью aws-cli) по-прежнему установлено значение NONE вместо ALL. Как и ожидалось, я не могу отправить этому пользователю SMS. Как я заметил, поддерживаются ли два отдельных статуса отказа для Pinpoint и SNS? Если да, есть ли подробная документация о том, как они обновляются?
- На шаге 4 вышеупомянутой реализации я заметил, что номер пользователя НЕ удаляется из списка отказа SNS, а его статус отказа конечной точки остается НЕТ. В отличие от ожидаемого поведения, я все еще не могу отправить этому пользователю SMS. Правильно ли я выполняю повторную подписку?
Пожалуйста, ответьте на вопросы и подскажите, как правильно реализовать мой вариант использования.