如何使用存储在数据库中的 phone 号码使用 django 和 AWS SNS 发送短信

How to send sms messages with django and AWS SNS with phone numbers stored in a database

我正在使用 django 创建一个应用程序,它执行以下操作,当用户按下物理按钮时,该按钮向 django-rest 发送一个 POST 请求,然后创建一个票证,同时它创建票据,它向存储在 SQL 数据库中的 phone 发送短信通知。 phone 号码对应于可以帮助解决按下按钮的用户遇到的问题的人。

我试图思考如何在服务器中处理 POST 请求时查询具有 phone 数字的 table 然后使用 phone号码发短信我想不出办法

我希望当用户按下物理按钮时创建一个支持工单并且负责帮助处理工单的人会在 phone 上收到一条短信通知。

我不知道您是否设法解决了这个问题,但对于仍在使用 AWS SNS 寻找答案的任何人来说都非常简单。

创建具有以下权限的用户,或者如果您愿意,可以将其附加到现有 user/role。

{
  "Version": "2012-10-17",
  "Statement": [{
      "Effect": "Deny",
      "Action": [
        "sns:Publish"
      ],
      "Resource": "arn:aws:sns:*:*:*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "sns:Publish"
      ],
      "Resource": "*"
    }
  ]
}

安装 boto3 以便您可以与 AWS 交互。

为了发送 SMS,为 "sns" 资源创建一个客户端并在其上调用发布。

import boto3

# Create an SNS client
client = boto3.client(
    "sns",
    aws_access_key_id=AWS_ACCESS_KEY,
    aws_secret_access_key=AWS_SECRET_KEY,
    region_name=AWS_REGION,
)

# Send your sms message.
client.publish(
    PhoneNumber="YOUR_PHONE_NUMBER_IN_E.164_FORMAT",
    Message="This is Amazon SNS service talking!"
)

确保您没有向他人发送垃圾邮件。您可能需要请求 AWS increase your SMS sending limits,因为它默认为 1 美元。