我正在寻找几个短信API.基本上是从手机接收短信.有什么建议?
有两个基本的"SMS API":SMPP和HTTP.
SMPP接口是蜂窝电话公司内部以及SMS发送/接收客户端与那些电信公司和SMS聚合器之间使用的全球标准.我建议阅读SMPP v5.0规范.对SMPP的一般国际支持声称"符合SMPP v3.4",但在操作上,SMPP v5.0与3.4相比几乎没有变化,只是文档要好得多.SMPP v3.4规范文档有点稀疏,SMS论坛大大增强了5.0版本的规范文档.
SMPP是一种规范,用于记录在两个节点之间发送和接收SMS的方式:ESME或客户端(可能是您),以及MC或"telco"端,它们是您与之签订合同的电话公司或SMS聚合器融入国际短信基础设施.
如果您实现高容量,即每秒多个SMS,则需要SMPP.SMPP协议是在TCP上运行的二进制PDU请求/响应对协议.基本的请求/响应对协议相对简单,但SMPP规范有很多扩展,在现实世界中,由于各种软件和电信公司实现SMPP各种功能的扩展数量和不一致性,事情变得相当复杂. .使用SMPP要求您持续运行守护程序/服务以提供实时SMPP对等通信工具,并且不能纯粹在Web应用程序代码中实现.将SMPP集成到Web应用程序中需要开发一个守护程序/服务来处理SMPP ESME/MC对的ESME部分,然后在该守护程序和您的Web应用程序之间提供某种RPC机制.
Logica是SMPP库的一个例子.Logica是SMPP SMSC开发的先驱,并已将该库作为开源发布.在Windows上运行的极少数之一.大多数开源SMPP代码都在*nix上运行.
或者,可以使用第三方SMPP网关软件.到目前为止,最广泛采用的开源SMPP服务器是Kannel.我知道几个使用它的SMS聚合器.当您询问PHP并且我假设Linux时,与Kannel集成可能是您最好的选择.我警告你,配置是非常重要的.还有一些非开源的可用,如Ozeki Message Server和Nordic Messaging Technologies的企业消息服务器(EMG). 这两种产品都提供了比Kannel更"关键"的解决方案,可能更适合您的使用.
对于小批量应用程序,实现SMS聚合器的HTTP接口要简单得多.有许多SMS聚合器提供HTTP接口.没有通用的标准,但几乎都提供了一个相对简单的GET/POST HTTP接口,可以很容易地集成到Web应用程序或任何支持HTTP GET/POST的软件环境中.SMS聚合器通常还提供一些基于文件或XML的接口,用于更高容量的发送.正如上面提到的读者所说,Clickatell是SMS聚合器的一个例子,它们被认为是"业界的先驱".另一个例子,我用过的是Routo Messaging.
每个SMS聚合器都有自己的HTTP API,但大多数都支持相同的服务.此外,他们中的大多数提供一些免费的测试学分.我已经编写了代码来测试其中的几个,这是一个简单的几个小时的过程,一旦你写了一个小时,通常不到一个小时.