переключение между транзакционными и рекламными смс в амазонке - PullRequest
0 голосов
/ 31 декабря 2018

TL; DR Не нужно указывать транзакционный / рекламный тип сообщения на лету (в качестве параметра) без необходимости каждый раз устанавливать атрибуты сообщения.

Итак, я хочу отправить OTP клиенту, используя amazon SNS, и это код для следующего:

import boto3

client = boto3.client('sns')
response = client.publish(
               PhoneNumber='some_phone_number',
               Message='some_message'
           )

Согласно их документации , существует 2 типа сообщений:
1. Транзакционный (доставка, критичная ко времени)
2. Рекламный (доставка, не критичная ко времени и экономически эффективная)

У меня есть возможность установить атрибуты сообщения по умолчанию с помощью set_sms_attributes() следующим образом:

client.set_sms_attributes(
           attributes={"DefaultSMSType": "Transactional" | "Promotional" }
)

Я не хочу продолжать изменять этот параметр, поскольку они являются значениями по умолчанию.Я не хочу указывать тип сообщения на лету в качестве параметра в publish()

Я проверил MessageAttributes, но согласно их документам , это неукажите тип сообщения, но он содержит метаданные для обработки сообщения клиентом перед его обработкой.

Существует ли способ переключать тип сообщения на лету, не устанавливая его в настройках по умолчанию, используя set_sms_attributes

1 Ответ

0 голосов
/ 31 декабря 2018

Вы можете установить его, используя 'AWS.SNS.SMS.SMSType' в publish().Этот атрибут описан здесь , например:

client = boto3.client('sns')
response = client.publish(
               PhoneNumber='some_phone_number',
               Message='some_message',
               MessageAttributes = {
                   'AWS.SNS.SMS.SMSType': {
                       'DataType': 'String',
                       'StringValue': 'Promotional'  # or 'Transactional'
                   }
               }
           )

Примечание: для некоторых регионов нет разницы в стоимости между этими двумя типами.

...