Google Voice并没有提供官方API接口,但是实际上还是可以通过HTTP和XML请求的手段来实现。目前网上能够找到的API最终大都是溯源到Chad Smith的这篇主题帖。
要通过Google Voice实现发送短信,首先要登录到Google Voice账号,然后取出页面中的“_rnr_se”参数,最后把这个参数和对方手机号、短信内容POST到Google Voice SMS的地址即可。Tyler Hall曾经写过一个Google Voice的php类,但是我试用时并不成功,总是卡在登录Google Voice的过程上。对此我二次开发了它的这个类,重写了绝大部分代码。
经过实际尝试,没有使用Chad Smith的XML请求地址,而是使用了移动终端版的Google Voice请求地址并且根据需要改动了POST请求的参数,最终搞定了一个基于php的Google Voice短信发送工具,调用地址在http://www.lostleon.com/tools/googlevoice/,项目地址在http://phpgooglevoice.googlecode.com/。
很遗憾,天翼189号码不被Google Voice支持。移动158号码测试通过。