简单的服务器端 2G 移动电话应用程序
2010-06-28 00:00:00 来源:WEB开发网获得您的应用程序的通用简码地址
您可能已经注意到,一些基于 SMS 的应用程序支持其用户将消息发送到一个特殊的 5 位数电话号码,例如发送到 46645 (GOOGL) 可以向 Google 发送信息,发送到 40404 可以向 Twitter 发送信息。如果您的用户可以将他们的文本消息发送到一个通用简码(CSC),而不是一个电子邮件地址那该多好啊!这是可行的,但注册费用很高,尤其是想挑选自己的 5 位数号码时。这些由 Common Short Code Administration(CSCA)管理,这是 International Association for the Wireless Telecommunications Industry 的一个代理。 一旦您签订了按月付费使用特定 CSC 的合同,您还必须与每个运营商达成协议来激活该简码,而且美国的简码不能在美国以外的地区使用。CSCA 网站提供了更多信息。
几点注意事项:
logIt 函数向文本文件 log.txt 中存储一行,这行包含记录的时间、请求信息的移动设备的电子邮件地址、以及这个移动设备希望知道的区号。一个示例行如下:2010-03-19T19:50:02 4340000000@vtext.com 407。如果布尔变量 keepFullLog 设置为 True,程序将收到的整条消息保存在另一个日志文件中。整条消息十分冗长,但对于调试非常有用。
Microsoft® Outlook® 发送的电子邮件格式是 email.Parser 库所无法理解的,但是没有 2G 电话会发送这样的电子邮件。当脚本检测到一个 Outlook 邮件时,将会发送适当的回复。
脚本使用另一个著名的 UNIX 实用程序 sendmail 来发送该电子邮件。这并不是某个包含需要调用的函数的特殊库,它的操作与 UNIX 组装应用程序组件的原理更加一致,那就是将来自一个组件的信息传输到另一个组件。Python 脚本就像打开文本文件一样打开 sendmail,向其中写入适当的信息,然后 “关闭” 它。
areaCodeInfo 函数在文件 areacodes.txt 中搜索信息。清单 4 给出了这个文件的一部分,我已在一个 Wikipedia 页面上给出了该文件。
清单 4. areacodes.txt 的一部分
210: Texas (San Antonio area)
211: Community Services Hotline (e.g., crisis line, United Way, etc.)
212: New York (Manhattan except for Marble Hill)
213: California (central Los Angeles)
214: Texas (Dallas area)
在文本文件中搜索一个字符串并返回包含该字符串的行,这非常简单。当您开发自己的应用程序来向 2G 移动电话回复消息时,您可以获得更多的创意:您的程序可以对本地和远程存储的任意组合执行数据库查询,交叉引用它发现的信息,执行各种逻辑来向发送查询的电话返回有用的信息,只要它不超过 SMS 消息的 160 字符限制。
可以将移动电话看作运行您应用程序的命令行界面的客户端,记住,您的应用程序可以是一段简单的脚本,可以让其他库来执行困难和复杂的工作。您将看到适用于全球数十亿部电话的服务器端应用程序非常容易。
更多精彩
赞助商链接