在以下情况下,我们可以通过AWS发送SMS吗?

我在Ec2上安装了一个应用程序,该应用程序运行的规则很少,如果满足规则条件,则可以向最终用户发送SMS。

我想将其与一些SMSC集成,并考虑使用AWS-SNS进行拍摄。但是,我不知道如何将应用程序与AWS-SNS集成。

浏览AWS-SNS的文档时,我不确定是否可以实现。它谈论创建主题并将E164编号分配给主题,但没有告诉我们如何将其与我们现有的应用程序集成。

评论

虽然SNS可以做到这一点...您可能会发现像Twilio这样的特别专注的SMS服务更易于使用,特别是如果您要将消息发送给许多不同的号码。

#1 楼

我相信您将需要使用AWS SDK以编程方式执行此操作,如发送消息(AWS SDK)中所述。这是它的引号:


要使用其中一个AWS开发工具包发送SMS消息,请使用与该开发工具包中的Publish请求相对应的SDK操作。 Amazon SNS
API。有了此请求,您就可以直接将短信发送到
电话号码

...

发送消息(Java的AWS开发工具包)

以下示例使用AmazonSNSClient
类的publish方法将消息直接发送到电话号码:

public static void main(String[] args) {
        AmazonSNSClient snsClient = new AmazonSNSClient();
        String message = "My SMS message";
        String phoneNumber = "+1XXX5550100";
        Map<String, MessageAttributeValue> smsAttributes = 
                new HashMap<String, MessageAttributeValue>();
        //<set SMS attributes>
        sendSMSMessage(snsClient, message, phoneNumber, smsAttributes);
}

public static void sendSMSMessage(AmazonSNSClient snsClient, String message, 
      String phoneNumber, Map<String, MessageAttributeValue> smsAttributes) {
        PublishResult result = snsClient.publish(new PublishRequest()
                        .withMessage(message)
                        .withPhoneNumber(phoneNumber)
                        .withMessageAttributes(smsAttributes));
        System.out.println(result); // Prints the message ID.



评论


如果我仅需要编写代码以与SMSC类型的事物集成,就没有多大意义,应用程序代码应该与用于发送SMS的SMS服务/ SMS网关/ SMSC无关。我不想随同AWA-SNS的编码集成一起交付代码。

–lakshayk
17年7月31日在10:04

如果您不想发送连接到特定提供程序的代码,则需要编写一个抽象层并单独进行发送-不可能每个人都同意一个通用API。

–熊佳亚诺夫
17年8月2日在15:12