Amazon web services AWS-不订阅发送SMS

Amazon web services AWS-不订阅发送SMS,amazon-web-services,amazon-sns,Amazon Web Services,Amazon Sns,我正在AWS上开发一个需要向客户发送短信的应用程序。有时,应用程序只需要发送一条短信(AWS事务性短信在这里可能有帮助),有时它可能需要向不同的人群发送短信(AWS似乎没有针对此用例的解决方案)。这完全取决于用户在应用程序上做什么 我已经探索了使用SNS的可能性,但它要求用户订阅一个主题,这对我的用例不起作用。我已经探索了使用AWS Pinpoint的可能性,但它似乎也不适用于我的用例。我可以使用Twilio,但我更愿意呆在AWS内(另外,) 在美国,通过AWS发送不需要订阅主题的文字信息的最佳

我正在AWS上开发一个需要向客户发送短信的应用程序。有时,应用程序只需要发送一条短信(AWS事务性短信在这里可能有帮助),有时它可能需要向不同的人群发送短信(AWS似乎没有针对此用例的解决方案)。这完全取决于用户在应用程序上做什么

我已经探索了使用SNS的可能性,但它要求用户订阅一个主题,这对我的用例不起作用。我已经探索了使用AWS Pinpoint的可能性,但它似乎也不适用于我的用例。我可以使用Twilio,但我更愿意呆在AWS内(另外,)


在美国,通过AWS发送不需要订阅主题的文字信息的最佳方式是什么?

使用SNS服务中的
发布
操作将文字发送到一部没有主题的手机。您可以反复拨打
Publish
向多部手机发送短信


使用SNS服务中的
CreateTopic
Subscribe
Publish
操作一次向多部手机发送文本(使用一个主题)


如果有人在寻找这个问题的答案:

您可以在AWS SNS中以两种方式发送短信

  • 订阅在AWS SNS中创建的主题,并向所有订阅过该主题的用户发送短信
  • 直接向手机号码发送短信
  • 你需要的是第二个

    我将在这里演示如何使用Ruby语言实现这一点

    安装gem aws sns:

    gem install aws-sdk-sns 
    require 'aws-sdk-sns'
    
    1.设置SNS客户端

    @sns_client = Aws::SNS::Client.new(
      region: ENV['AWS_SNS_REGION'],
      access_key_id: ENV['AWS_SNS_ACCESS_KEY'],
      secret_access_key: ENV['AWS_SNS_SECRET_KEY']
    )
    
    2.设置SNS客户端属性

    @sns_client.set_sms_attributes({
                                     attributes: {
                                       'DefaultSenderID' => SENDER_ID,
                                       'DefaultSMSType' => SMS_TYPE
                                     }
                                   })
    
    3.发布短信

    otp = (1000..9999).to_a.sample
    
    @sns_client.publish({
                          phone_number: @mobile_no,
                          message: "#{OTM_MSG} #{otp}"
                        })
    
    就这样

    OTM_MSG:'你的信息在这里'

    短信类型:“交易”或“促销”

    如果您想发送OTP/银行交易,那么它是“事务性的”。否则,如果你想发送一些产品的促销短信,那么它就是“促销”

    SENDER_ID:如果要使用自己的发件人ID,则是您已注册的发件人ID

    如果您没有发件人id,请跳过步骤2-设置SNS客户端属性

    @sns_client.set_sms_attributes({
                                     attributes: {
                                       'DefaultSenderID' => SENDER_ID,
                                       'DefaultSMSType' => SMS_TYPE
                                     }
                                   })
    
    AWS_SNS_地区、AWS_SNS_访问_密钥、AWS_SNS_保密_密钥-是您希望使用SNS的AWS帐户的凭据

    请参见AWS文档中的以下内容: 它还提供了Java语言的代码

    如果你想知道更多,我在这里写了一篇文章: