通过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 Struts2从服务器重定向到外部URL   java无法捕获从一个方法到另一个方法的返回值   无法在Java中使用HtmlUnit从URL获取id为的元素   java如何从函数中添加片段?   java在一个页面中连接过多?   java如何在javafx中基于时间更改场景   java刷新活动,活动从片段开始   Android中的java Flandmark   初始化和运行springboot应用程序时出现java问题   java如何使用SD卡的直接访问权限   java无法将void转换为“classname”   java从外部向存在于EventDispath线程中的JFrame添加额外的面板?   带有servlet和线程的java Wildfly连接池   java在子类中获取WriteTo文件的内容   多线程从java中ScheduledThreadPoolExecutor>ExecutorService向下发送中断(kill 15或9)信号(Ctrl+C)   java为什么我可以使用类引用在类内部交换字段值,但不能交换引用本身   java PowerMock禁止构造函数,但设置私有最终字段   Javai使用gson解析嵌套的json数据,但返回null   访问者Java私有修饰符混淆