通过http网关的django通用短消息

django-sms-gatewa的Python项目详细描述


从django通过网络网关轻松发送短信。

这段代码相当稳定,已经使用了大约2年,每周有数千条消息发送到各种网关和一些不同的国家。

安装

  • Install the package into your project’s virtual environment:

    ^{tt1}$

  • Add ^{tt2}$ to your project’s ^{tt3}$.

  • Run ^{tt4}$ or ^{tt5}$

配置

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函数。将调用此函数,并将reply对象作为参数传入。reply对象可以访问它的原始消息(也可以匹配)。

计费

由于SMS通常通过Web网关计费,因此需要提供帐单,并且每条消息上都有帐单标记。这允许你事后结账。如果您只想允许向还剩信用额度的人发送邮件,那么在尝试发送之前,您需要对此进行验证。

由于消息可能超过一个段,因此在sms.Message.length上有一个helper属性,该属性计算需要多少段。

未来

目前,所有发送都在处理中。有一个初步的芹菜任务,但它还没有被广泛的测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用jaxb整理集合?   java改装添加带有令牌和id的标头   Java Webstart在启动应用程序之前停止   mysql将请求主体作为JSON存储到Java数据库中   春天3。从Java 7更新到Java 8后x应用程序不工作   java如何为我的mock实例化unirest HttpResponse<JsonNode>?   java两个servlet在同一场战争中与两场独立战争中的利弊?   java Mockito验证未失败   GWT中的java文件读取器   java避免代码重复   java谁将设置saml cookie,其中包含凭证信息   java如何修改jar包代码,然后重新导出更新的jar包?   BST数据结构中的java递归差异   java如何从文本文件中读取存储的哈希表?   带有quercus的java php comet   java从SeleniumWebDriver写入json变量   javascript如何在同一个action类中对方法调用action?