【问题标题】:Sending SMS notification for Indian mobile numbers from AWS SNS从 AWS SNS 发送印度手机号码的 SMS 通知
【发布时间】:2017-04-11 23:13:21
【问题描述】:

我正在尝试从 AWS SNS 服务向我的印度号码发送短信通知。许多人在互联网上搜索此内容时在他们的帖子中提到 SMS 服务仅适用于美国手机。

但在阅读 SNS 文档时,我发现印度位于受支持的地区。

我在 SNS 中创建了一个主题并为我的手机号码创建了短信订阅,但我没有得到订阅链接。

我不知道我的理解是否正确。对此有什么想法吗?

我尝试通过 AWS Cli 命令和 boto3 发送它。我收到了成功代码,但我没有收到任何短信。>>> sns.publish(PhoneNumber = number, Message='example text message' ) {'ResponseMetadata': {'HTTPStatusCode': 200, 'RequestId': '96d0fd74-0657-5dd6-ba6d-adb783076e26', 'HTTPHeaders': {'x-amzn-requestid': '96d0fd74-0657-5dd6-ba6d-adb783076e26', 'date': 'Thu, 08 Dec 2016 15:58:08 GMT', 'content-length': '294', 'content-type': 'text/xml'}}, u'MessageId': '2b7ed463-2698-53ff-8b85-84a0a3c8c00f'}

提前致谢

【问题讨论】:

  • TRAI-india 限制在免打扰号码上发送短信。您可以使用任何基于印度的短信网关,如 SPRING EDGE 进行确认发送。

标签: amazon-web-services amazon-sns


【解决方案1】:

要向印度号码发送 SMS,您需要在 https://www.vilpower.in/ 上注册自己,然后您需要通过注册和批准您的消息来获取要发送的消息的 entityId 和 templateId。

您可以按照以下链接中提到的步骤 - https://docs.aws.amazon.com/sns/latest/dg/channels-sms-senderid-india.html

https://www.vilpower.in/ 获得 entityId 和 templateId 后,您必须将这些 ID 发送到您通过 AWS SDK 进行的 SMS 呼叫。与 templateId 和 entityId 相关的文档可以在这里找到 - https://docs.aws.amazon.com/sns/latest/dg/sns-send-sms-india.html

你可以在下面找到nodejs代码:

var AWS = require("aws-sdk");

module.exports.sendSMS = function sendSMS(req, res) {
   var params = {
       Message: "Invoice amount Rs 1 has been generated. Click to view and pay.",
       PhoneNumber: "+" + req.body.phone_number,
       MessageAttributes: {
            "AWS.MM.SMS.TemplateId": {
                 DataType: "String",
                 StringValue: "<templateId>",
            },
            "AWS.MM.SMS.EntityId": {
                 DataType: "String",
                 StringValue: "<entityId>",
            },
        },
   };

   var sns = new AWS.SNS({
         apiVersion: "2010-03-31",
         region: "ap-south-1",
   });
   sns.setSMSAttributes({
         attributes: {
              DefaultSenderID: "<senderId>",
              DefaultSMSType: "Transactional",
         },
   });
   return sns.publish(params).promise();
};

【讨论】:

    【解决方案2】:

    确保将消息类型选择为TransactionalPromotional 可能默认是电信运营商不允许的。

    【讨论】:

      【解决方案3】:

      试试这个在印度发送短信 - 注意 MessageAttributes

      var AWS = require("aws-sdk");
      
      module.exports.sendSMS = function sendSMS(req, res) {
        var params = {
          Message: "Your OTP verification code is 3493",
          PhoneNumber: "+" + req.body.phone_number,
          MessageAttributes: {
            "AWS.SNS.SMS.SMSType": {
              DataType: "String",
              StringValue: "Transactional",
            },
            "AWS.SNS.SMS.SenderID": {
              DataType: "String",
              StringValue: "Horoscope",
            },
          },
        };
      
        var sns = new AWS.SNS({
          apiVersion: "2010-03-31",
          region: "ap-south-1",
        });
        sns.setSMSAttributes({
          attributes: {
            DefaultSenderID: "Horoscope",
            DefaultSMSType: "Transactional",
          },
        });
        return sns.publish(params).promise();
      };
      

      【讨论】:

        【解决方案4】:

        我已经尝试过了,它对我有用。 在印度,所有电信流程都应获得印度电信监管局 TRAI 的批准。根据 TRAI,我们只能在 09:00 AM 到 09:00 PM 之间发送促销短信。欲了解更多信息,请访问https://www.trai.gov.in/

        【讨论】:

          【解决方案5】:

          SNS 的 SMS 通知选项适用于全球,包括印度。

          转到 AWS 服务控制面板上的 SNS 服务,您会在左侧看到以下选项。

          • SNS 仪表板
          • 主题
          • 应用订阅
          • 短信 (SMS)

          点击短信(SMS),您将获得以下选项:

          • 管理短信首选项
          • 查看退出的电话号码
          • 发送短信 (SMS)

          要运行测试,只需使用选项发送短信 (SMS) 如果您对您的用户/帐户没有任何限制,您应该能够发送短信。在构建集成管道之前,这是一个很好的手动测试。

          寻找更多信息的地方是:

          【讨论】:

          • 我试过这种方法,但它不起作用:(它甚至没有显示错误
          • 你的信息是错误的亚洲地区你看不到短信选项,请纠正你的答案以避免混淆。
          【解决方案6】:

          您可以向印度手机号码发送短信。

          只需将数字添加为 91xxxxxxxxxx,几秒钟后开始使用 AWS 控制台中的“发布到主题”或通过 API 发送消息。

          这里不涉及确认过程

          【讨论】:

          • 我尝试通过 AWS Cli 命令和 boto3 发送它。我收到了成功代码,但我没有收到任何短信。。
          • 不确定是否会有所不同,但您可以直接从 AWS 控制台尝试。我尝试了 2 个不同的号码(idea 和 Vodafone),并且都收到了短信
          猜你喜欢
          • 1970-01-01
          • 2023-04-03
          • 2017-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多