PyFetion发布

本来想着继续完善后再放出来,不过看到别人已经有做出来的,俺就不重复劳动了,前篇文章已经提到了基本的功能,这里也就不重复了。

我需要的功能差不多了,最近事多也就不改了,各位需要使用飞信聊天的的话建议用官方的,或者期待我第一个链接提到的。做开发的话俺还是用自己的比较清楚,当然别人的如果开放的话也可以参考一下。

这里写个简单的文档吧:

代码下载

This entry was posted in Life and tagged , , . Bookmark the permalink.

47 Responses to PyFetion发布

  1. la.onger says:

    真是太感谢了。我找到了一些py的fetion库,不过功能上不如您的,您这个放出来了,对我真是太有用了

  2. anoum says:

    windows xp 下出错了
    Traceback (most recent call last):
    File “test_pyFetion.py”, line 13, in
    phone.login()
    File “D:\…\…\pyfetion\PyFetion.py”, line 79, in login
    (self.__ssic,self.__domain) = self.__get_uri()
    File “D:\…\…\pyfetion\PyFetion.py”, line 225, in __get_uri
    ret = self.__http_send(url,login=True)
    File “D:\…\…\pyfetion\PyFetion.py”, line 192, in __http_send
    code = e.code
    AttributeError: ‘URLError’ object has no attribute ‘code’
    shell returned 1

  3. 可可熊 says:

    我在XP下试过没问题;
    把188行的 request 打印出来瞧瞧。

  4. www says:

    ok,very good.

  5. anoum says:

    我用的IE代理上网的…可能和这个有关系吧 回家再试.

  6. 可可熊 says:

    不支持代理的。

  7. 菜哥 says:

    试试设置环境变量 set HTTP_PROXY=http://xxxxx:8080
    urllib库是支持http代理的;

  8. 可可熊 says:

    这个就只能使用HTTP方式通信了,这种使用代理很方便的,库里也有使用代理用到的函数。

  9. Zoom.Quiet says:

    整个 code.google 的空间发布吧,有什么问题,也好统一管理不是?

  10. liuxin says:

    莫非前一段python-cn上传的热热闹闹的
    python飞信库就是你?
    嘿嘿 赞个

  11. 可可熊 says:

    也没多热闹吧:-)

    正打算弄个google code呢。

  12. volans says:

    AttributeError: ‘URLError’ object has no attribute ‘code’,
    那个错误可以把,这行代码:
    except urllib2.URLError, e:
    替换成:
    except urllib2.HTTPError, e:

    其实问题的根源不在这里,应该是一个timeout的错误。反正我在有http代理的情况下没成功过,次次都是timeout。

  13. nonight says:

    怎么隐身登陆? 是不是在url中要多加个登陆状态的参数呢?“%s?mobileno=%s&pwd=%s”

  14. nonight says:

    你好, 怎么隐身登陆呢?

  15. 可可熊 says:

    隐身登录暂时没加,有时间俺会弄弄。现在不记得在哪儿加。

  16. Yangmin says:

    在我的linux服务器上试了一下,发现能够登录,添加好友,但是就是发不了信息(发到PC客户端和手机终端都不行)。我把相关信息贴在这里,请帮忙看下,谢谢。
    python version:2.5
    date : Thu Jan 15 16:21:11 CST 2009 类似这种格式(不知道有没有影响)
    测试代码:
    from PyFetion import *
    phone = PyFetion(“13466660571″,”superlee”,”TCP”)
    phone.login()
    phone.send_sms(“Hello, “,”1348888888″,long=True)
    phone.send_msg(“hello”,”134888888″)

    执行以上代码后,错误信息如下:
    [PyFetion]:code 200
    [PyFetion]:code 200
    [PyFetion]:content M fetion.com.cn SIP-C/2.0
    F: 586767865
    I: 1
    Q: 1 M
    T: hello
    C: text/plain
    K: SaveHistory
    L: 11

    13426310813
    [PyFetion]:response SIP-C/2.0 500 Server Internal Error
    T: 13426310813
    I: 1
    Q: 1 M

    [PyFetion]:code 500
    [PyFetion]:code 500

  17. 可可熊 says:

    To:Yangmin

    那个send_msg函数有点问题,我改后面代码的时候影响到这个函数了.我会尽快修改的.

  18. 可可熊 says:

    不过发短信那个函数是没有问题的.

  19. ttytty says:

    这个确实很好的一个东西,给自己发短信,但是我们普通人没有自己的在线主机,不知道楼主或者楼里哪位神仙可以把这个移植到GAE上去,提供个url接口(手机号,密码,发送目标,发送内容),然后很多有飞信人就可以用这个来做些事情了

  20. armiuswu says:

    好像目前无法移植到gae上,gae不支持 User-Agent 的header, 好像也不真正支持https协议……

  21. phomeray says:

    测试了下脚本,发送对象 to 要是飞信用户才能收到

  22. spark says:

    一楼的anoum,这个脚本执行时候如果路径中有中文就会出现你的错误,把这个脚本文件放到全英文的路径下运行即可。

    另外,怎么收消息呢?能不能把这个功能补上,这样的话,让飞信机器人一直在线,我在外边就可以用手机短信控制电脑了。

  23. 可可熊 says:

    你不可以用自己的手机回复到自己的飞信上边去。

  24. Jay says:

    Yangmin写于09年01月15日 在我的linux服务器上试了一下,发现能够登录,添加好友,但是就是发不了信息(发到PC客户端和手机终端都不行)。我把相关信息贴在这里,请帮忙看下,谢谢。
    python version:2.5
    date : Thu Jan 15 16:21:11 CST 2009 类似这种格式(不知道有没有影响)
    测试代码:
    from PyFetion import *
    phone = PyFetion(“13466660571″,”superlee”,”TCP”)
    phone.login()
    phone.send_sms(“Hello, “,”1348888888″,long=True)
    phone.send_msg(“hello”,”134888888″)
    执行以上代码后,错误信息如下:
    [PyFetion]:code 200
    [PyFetion]:code 200
    [PyFetion]:content M fetion.com.cn SIP-C/2.0
    F: 586767865
    I: 1
    Q: 1 M
    T: hello
    C: text/plain
    K: SaveHistory
    L: 11
    13426310813
    [PyFetion]:response SIP-C/2.0 500 Server Internal Error
    T: 13426310813
    I: 1
    Q: 1 M
    [PyFetion]:code 500
    [PyFetion]:code 500

    我的错误和他的一样,该怎么修正呢?

  25. spark says:

    armiuswu写于09年01月31日

    好像目前无法移植到gae上,gae不支持 User-Agent 的header, 好像也不真正支持https协议……

    现在gae支持urllib这些库了 。

  26. holisp says:

    我在本地的gap上测试是可以给自己的手机通过http方式发送的

  27. zay says:

    bear同学我成功的移植到了GAE
    谢谢你提供的代码,pyfetion我自己还修改了些小地方,不过这代码还不是很“透明”,等完善几个地方后,发给你过目下……不知道你有没有放在google code上,这样可以方便共同开发
    很感谢你
    http://zayfetion.appspot.com/
    用的是cocobear分享的pyfetion

  28. 草儿 says:

    看到了http://www.cnbeta.com/articles/82231.htm这篇文章,有人发上去了。

  29. nile997 says:

    get_contact_list() 获得了好友列表。
    但是这个好友列表并不包括好友的手机号码。
    那么就不能根据这个好友列表通过PyFetion发送短信吗?

  30. nile997 says:

    send_sms 既可以发给手机号码,也可以发给飞信号码。呵呵,看见了。

  31. 可可熊 says:

    To:nile997
    可以获得好友的手机号,前提是该好友对你设置了显示手机号的权限。

  32. 可可熊 says:

    To:nile9997
    该列表不包括手机号,要获得手机号需要使用get_info。

  33. nile997 says:

    现在如果要给一个好友发短信,PyFetion是不是不能判断对方是不是在PC端?
    我现在处理的方法是先判断一下他是不是在PC端,然后再选择send_msg或者send_sms…

  34. nile997 says:

    get_info获取的是自己的信息。
    我的意思是怎么样获取所有好友的手机号码?

  35. 可可熊 says:

    ret = self.get_info(uri)
    no = re.findall(‘mobile-no=”(.+?)” ‘,ret)
    看这段代码。

  36. nile997 says:

    嗯,现在先获得contact_list,然后通过get_info获取每个人的手机号码。
    谢谢可可熊的耐心!

  37. nile997 says:

    不过这样的效率实在不高…

  38. 可可熊 says:

    你想实现什么样的功能?

  39. 仰望星空 says:

    正是我要找的,谢谢!

  40. 三无浪子 says:

    你好!请问一下,我用你的程序发短信的时候,若短信内容为英文时没问题,但是为中文时就是乱码,我也找了好多关于Python字符集的资料看了,也照着改了,但是没有一个办法好使的。所以还是向前辈请教一下。

  41. 可可熊 says:

    你要使用utf-8编码你需要发送的内容。

    pyfetion代码中有示例的。看下你文件的编码和python代码上面的coding是否相符。

  42. andy says:

    您好,由于我是一名java开发人员,项目上又有此方面的需求,不知朋友能否写一份java版的另:我看到有个jython项目,尝试着将它放在了eclipse中进行调试,但报如下的错
    File “D:\jython2.5.0\Lib\socket.py”, line 1408, in make_ssl_socket
    ssl_socket.startHandshake()
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)

    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
    是否是因为这个jython中socket.py的问题?

  43. 三无浪子 says:

    你好!请问一下,针对Python Fetion目前的版本,如果对方没有注册飞信,我只是加了他为手机好友,在这种情况下,我给他是发不了短信的吧?

  44. Pingback: note 106 | 小龙

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>