临时性修补GTAP某些客户端不能查看follower和friends的问题
我一直使用GTAP用来当做架设在GAE上面的Twitter API转发工具。不过用GTAP的同学可能会发现在某些客户端中当你点击查看follower或是friends时候,你的客户端会返回404错误,也就是说你请求的地址并不存在。
但是GTAP作为一个转发代理来说,应该说是不太可能弄坏了原始链接的,并且就Twitter API的Wiki来看,所请求的链接:
https://api.twitter.com/statuses/friends.format
是一个标准的请求地址,应该能够正常返回才对,可惜现实摆在我们面前,于是我用了个折中的方案,这个方法构造的链接并不是Wiki中所提供的链接,是我无意中试用成功的。
废话不多说,大家只需要用EditPlus修改main.py中42和43之间加入红色的部分就行了(我用的是SVN上面的R37版本,假如你Checkout下来的不是这个版本,请自己找下黑色的代码)
42 path_parts = path_parts[2:]
43 if len(path_parts) == 2:
44 errreq=['followers.json','friends.json','followers.xml','friends.xml','followers.rss','friends.rss']
45 if path_parts[1] in errreq:
46 path_parts.insert(0,username+'/')
47 path_parts.insert(0,'')
另外请注意段落格式,因为Python语言没有花括号,不知道不好的缩进格式会不会导致问题。
这只是暂时性的解决了404的问题,构造的链接并不标准,而且一次性只能收到100个用户(这是Wiki上所写的),更多用户需要用到游标,但是我直接加入之后出现错误,所以暂时不去修改了,而且我没有100个这么多的用户,我也不能实际测试,有爱的同学要是试过了请告诉我一下。
顺便一说:
以前我遇到过twhirl使用GTAP不能发推的问题,实际使用下来是因为现在的GTAP版本都强制使用HTTPS链接,于是使用twhirl的lanoni.ca账户以 用户名@API地址 (不含https://)的方式登陆后发推总error,故我判断twhirl的lanoni.ca账户对于SSL支持不够,或是GTAP的本身Bug所致。
解决的方法很简单:
修改gtap的配置文件app.yaml,将secure: always中的always改成optional或者never或者 你可以直接删掉这一行,也是一样的。然后上传,你的twhirl将又能发推,不过失去ssl的保护,你的请求将被明文发送,并不安全。
感谢推友@Sometb的帮助!
Niphor注:以上结论并不一定正确,而是我实际使用中的总结,可能与真理不同,只是表现方式一样,如有错误,请指正!
原创文章,转载请注明: 转载自M-78 星云
文章的脚注信息由WordPress的wp-posturl插件自动生成
