通过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.Message、sms.Gateway和sms.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/,则回复也是如此。
计费
由于SMS通常通过Web网关计费,因此需要提供帐单,并且每条消息上都有帐单标记。这允许你事后结账。如果您只想允许向还剩信用额度的人发送邮件,那么在尝试发送之前,您需要对此进行验证。
由于消息可能超过一个段,因此在sms.Message,.length上有一个helper属性,该属性计算需要多少段。
未来
目前,所有发送都在处理中。有一个初步的芹菜任务,但它还没有被广泛的测试。