跳转到主要内容

通过http网关发送django通用短信

项目描述

轻松通过django网关发送短信消息。

此代码相当稳定,已使用约2年,每周发送数千条消息,通过各种网关,到多个不同的国家。

安装

  • 将包安装到项目的虚拟环境中

    pip install django-sms-gateway

  • sms添加到项目的settings.INSTALLED_APPS中。

  • 运行./manage.py migrate./manage.py syncdb

配置

有三个django模型:sms.Messagesms.Gatewaysms.Reply

在您能够发送任何消息之前,您需要配置至少一个网关。有一些网关提供商的示例数据。您可以为您的目的调整其中之一。

用法

创建一个待发送的消息

msg = Message.objects.create(
  recipient_number="123456789",
  content="Test message",
  sender=user,
  billee=user
)

请注意,您必须提供至少这些字段。 recipient_number必须包含国际区号(或您的网关必须配置为添加它)。 content应该是ASCII,某些网关拒绝Unicode。 sender必须是auth.User,但billee可以是任何对象。

这不会发送消息

>>> msg
<Message: [Unsent] Sent to 123456789 by matt at None [1]>

要发送它,您需要提供一个网关

msg.send(gateway)

状态/回复回调

如果您的网关支持,您可以在任何消息的状态更新时让它在您的服务器上触发。您可以在您的urlpatterns中使用包含的视图。

urlpatterns = patterns('',
  (r'^sms/', include('sms.urls')),
)

这意味着您需要在您的网关设置中输入类似以下内容:

http://example.com/sms/status_postback/

在您的网关设置中。

状态可以更新,并且可以提供状态信息。这一切都是通过解析发送到服务器的状态更新请求的内容以及状态映射数据来完成的。

同样,对于回复也适用,如果你有一个双向网关,但使用 /sms/reply_postback/ 而不是。

回复回调函数

当你发送消息时,你可以在对象中存储一个 reply_callback 函数。此函数将被调用,并将回复对象作为参数传递。回复对象可以访问其原始消息(以及它可能匹配的内容)。

计费

由于短信通常通过网关计费,因此需要提供债务人,并且每条消息都有一个计费标志。这允许你在事后计费。如果你想只允许发送给有余额的人的消息,那么在尝试发送之前你需要验证这一点。

由于一条消息可能比一个片段长,sms.Message 有一个辅助属性 .length,它计算需要多少个片段。

未来

目前,所有发送都在进程内完成。有一个初步的 celery 任务,但尚未进行广泛测试。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

django-sms-gateway-1.2.1.tar.gz (26.8 kB 查看哈希)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面