最近有同学反映PyFetion不能在GAE上使用,我看了下别人给出的错误,问题不出在PyFetion上,无论是TCP方式还是HTTP方式,使用本机测试都可以正常工作。
应该是移动的飞信服务器屏蔽了GAE的出口IP地址(某同学反应GAE的urlopen使用的是同一IP)。
原因大概是广大GAE的爱好者众多,玩PyFetion的又比较多,所以移动不爽了,就封掉你。
问题出来了,原因也大概知道了,那怎么解决方案呢,下面就给出几个吧:
- 强烈要求GAE增加代理支持。
- 打电话给10086,然后说你的飞信上不出了,然后给客服MM说你的IP是:[GAE_IP(哪位知道这个IP来补充一下)]。
- 脱离GAE,使用自己的服务器。
- 继续使用GAE,使用另一服务器做为跳板。
解释一下,GAE不能直接访问飞信服务器了,可以在另一个地方,比如cocobear.info/PyFetion.py?phone=13838381438&pwd=383838&msg=^_^
做这样的一个的接口,然后使用GAE去访问这个服务器。
Update(09.4.27):
据gohsy同学反映,GAE上不能使用是因为服务器返回了405错误,而别的fetion实现会忽略405错误,继续进行,而PyFetion遇到这个错误会产生异常。记得以前调PyFetion的时候也遇到过405错误,应该是发送的数据格式不对而造成的,所以我猜想这里是因为网络环境影响造成的数据不完整,从而使得飞信服务器返回405错误。因为在GAE上PyFetion还是可以偶尔发送成功的,所以出错的原因应该不是程序本身。
为了在GAE上能更好的使用,我修改了一下PyFetion,增加了遇到405错误时重试功能,默认重试5次,这样会使得发送的成功率提高很多,但是由于405的出现,重试多次会影响到发送的速度,这一点是无法避免的。更新请到google code查看:http://code.google.com/p/pytool/source/detail?r=30
虾米是GAE?
哇 好快哦!~
GAE(Google App Engine)
O(∩_∩)O哈哈~
cocobear 还做下名词解释! 服务周到哦!
呵呵,我现在几乎不怎么用飞信了,有事直接打电话,嘿嘿
: ‘module’ object has no attribute ‘error’
args = (“‘module’ object has no attribute ‘error’”,)
message = “‘module’ object has no attribute ‘error’”
执行PyFetion的代码后就出这个问题,不知道哪里出问题了,可可熊能不能帮忙看一下,谢谢了
把完整的错误贴出来,不然看不懂。
啊…
可惜了。
还想玩玩GAE上面的fetion呢
找另外一个服务器做跳板应该怎么做呢?
有没有推荐的服务器啊?
占个位置
我的执行出来是这样的
怪
[img]http://www.jiub2b.com/py.jpg[/img]
菜鸟建群
飞信API交流 :76989585
你给出来的是一个不完整的提示。
我对qq群没兴趣。
那你对 什么感兴趣? 分享你技术的哈 (不要想歪了)
朋友提示出来了
data = self.__sock.recv(size,socket.MSG_WAITALL)
改成
data = self.__sock.recv(size)
邮件列表的方式比较好,QQ群太麻烦。
嗯,直接忽略405错误不可以吗?如果重试5次,时间会比较久,另外还是不能保证成功。
忽忽! fetionAPI邮件列表 诞生
http://groups.google.com/group/fetionapi
发现r33版本也不太稳定啊,我上午刚试成功发了一个短信,吃完饭就又收不到了。我试了改了下修订bug的r30版本也一样不成功,在屏显提示上已经send msg ok了。
我估计还是fetion把地址屏蔽了的关系。
还有什么可以稳定运行的招呀,飞信比较可恶。
你写的PyFethon很强啊,因为最近在做毕业设计,需要深入的理解一下你写的这个程序,能否提供一下这个源码的一些解释呢,还有Fetion协议分析能否也提供一下帮助呢,谢谢了!
我的qq:434731902
飞信的协议分析百度博客里有一份很详细的,你可以搜一下。
源码的的注释就是所有的说明了,不是很复杂的东西,所以如果你想了解的话就直接看源代码。有问题可以发邮件给我。
谢谢熊大神,我想问下我用JSP怎么调用你的程序,怎么动态传入参数呢?我现在只会这个啊:
import PyFetion
fetion= PyFetion.PyFetion("号码","密码")
fetion.login();
#fetion.send_sms("我要发的消息",to="号码")
不知你的邮箱地址是多少 我想问下如何用ASP来调用,如何传参数呢
JSP不能直接调用Python的代码。
那我是否应该把这个做成一个dll然后用ASP来调用期中的函数
具体应该怎么做呢,请指教啊,我的邮箱
lsxf_xin@163.com
谢谢!
非常感谢Cocobear大侠,我也是做毕业设计的,可能得调用飞信的接口来进行演示程序,可是刚刚接触Python,不了解PyFetion,我会发邮件向你请教的。到时候就麻烦你了。呵呵……
PyFetion的源文件只是这个PyFetion.py吗?我都不会Python……
只有一个文件。不会Python我也帮不了你。
呵呵,我目前只是要知道,用PyFetion可以接收别人回复来的短信吗?Python我会搞定的……
谢谢可可熊大哥!
PyFetion目前没有做这样的功能。但是可以加进去。
老大为什么自己不开发个gae blog程序呢?这方面国内还是太少了,好的如徐明micolog程序,但作者已经很少更新了,比较遗憾的,好的程序我相信会有很多人用的…
web开发我不善长的,GAE的blog也有不少吧,在Python中文邮件列表里有很多人发过的。
请教cocobear关于pythonfetion的几个问题:
如何快速查找某飞信号的sip值:
向手机发飞信,可以使用tel:\d{11}的形式;如果发给飞信号,则需要使用sip:\d=@fetion.com.cn;p=\d+的形式。
如果只知道某飞信号,不知其对应的手机号,如何快速地将它对应的sip号码查出来?需要每次调用phone.get_contact_list(),再从里面查找吗?
我的email>alk是 rex[at]zhasm[dot]com ,请指正。
您提及的百度上的协议分析,上面有手机前6位减某数得p=xxx值,但是这只对于知道手机号的有效,对于不知道手机号的,就不怎么灵光了,我目前只能一个个查。
老大,你Google code 上的 PyFetion.py 缩进有问题有几行的缩进用的tab ,下到本地看就乱了,望修正。
支持PyFetion
关于sip号码,一般是一个地区后面的p=xxxx是相同的。
这个p=xxxx就类似邮编一样,如果你能把全国各地的p=xxxx全统计一下那么你就可以利用查表的方式来获取sip号码。
tab缩进我会改一下的,多谢提醒。
最新的detail?r=43 pyfetion.py,好像不支持GAE。请问哪一款是比较新的,支持GAE的?
我猜测原因是里面使用了os等模块。将其注释掉,指定utf8 coding,但是仍然无法执行。
GAE使用没问题的。
发消息很奇怪,"<"字符及之后的文字都被扔掉了,是fetion的个性?
请教一个菜鸟问题:源代码中调试输出的部分形如“33[0;31;”的东东应该是ANSI颜色控制码?但是我无论在cmd还是在python的IDLE里运行,貌似都是把这些字符原样输出了……请教博主的环境是什么,可以支持这个的?
Linux终端里面控制颜色输出的。
对于GAE运行的问题,我也遇到了,但是情况比较诡异。
现象是第一次可以正常运行,之后的就不行了。
因为我是使用easy-twitter-sms调用PyFetion的,有个手动调用cron的路径。程序中加入log,第一次上传程序到gae后,手动执行一次cron,会看到解析地址,发送消息,成功,手机也可以收到。但如果之后再执行一次的话,就不出结果了。
我大概看了看代码,猜想是不是因为发送完短消息后没有logout的原因?
不是很明白gae的cron原理,但感觉似乎是由于生成了多个实例的原因。
希望所说的情况对博主有点帮助