2009年4月13日星期一

飞信接口的开发

前几天在某论坛看到一个blog有新留言自动通过飞信免费发消息到自己手机的小程序 

于是便从里面分离出了 飞信发送的代码 发现通过socket调用了第三方网站的接口,并且该网站在本服务器(美服)上无法访问,考虑到效率和其他一些问题,开始上网查找直接连接飞信服务器的接口

找到一些,发现有些是2006版的 不能用, 有些非开源的, 。。。最终下载了一个openfetion.php的库文件,

修改两处:
1。服务器地址由https://nav.fetion.com.cn/...改为https://uid.fetion.com.cn/...
2。send_sms函数中  'T'=>$to 有误, 函数注释声称@to--〉 receiver mobile number or sid, 但均不能使用,查找了多方资料后更正为   
if (strlen($to)<11) //$to 为飞信号
    {
        $to = "sip:$to@fetion.com.cn;p=xxxx";
    }
    else //$to 为手机号
    {
        $to = "tel:$to";
    }
能正常使用。其中这里xxxx服务器并不判断,可以为任意4数字
关于这4位数字 与手机的号码段有关 这里有详细说明(GetContactList的时候服务器会给出该数字)
13开头的手机 为 手机号码前6位 - 134099
159开头的应该减去 153099

但在send sms的时候服务器并不判断,在获取用户信息的时候如该数字如有误,在返回的xml里会出现404的字样,因此猜测可能是移动a号段的信息放在A服务器上,b号段放在B服务器上……
做负载均衡,正好利用这个天然的特点。

该库文件只有基本的登入、注册、发短信、获取好友列表功能,但每个好友的信息中不包括该好友的手机号,昵称等。所以又在网上搜寻一番,终于在这里找到了开源的python库,于是自己动手diy,将各种函数移植到该php的库中,改造成自己的库文件!

没有评论: