随时随地免翻墙通过API OAuth验证方式用twitter

来源:http://www.00jijiao.com/712.html

为了安全原因,twitter将在不久的将来彻底停止使用HTTP Basic Auth这种验证方式,全面改用更为安全的OAuth方式,也就是说,理论上每次通过api来访问twitter,都得先跳转到twitter官方登陆以 后在callback到你的客户端twitter软件上,这就造成了一个问题,墙内用手机或者其他twitter客户端的话,每次都得翻墙先登陆一下,这 可就麻烦了.以前的普通api验证将全面失效.

群众的力量是强大的,在不久之后就有人写出了支持OAuth验证方式的api.还有好多种方式,为此我选了几个比较热门的试了一下.一开始我用的是 twip但是发现要用这个api,必须找一个支持php的空间,而且还必须满足某些权限的需求.这就比较麻烦了.不可能放在自己空间里.那天空间被墙了就 不值得了.后来无意间有爱好者修改了gtap,使它支持了OAuth的验证方式,这个就相当爽了.哈哈.更重要的是,它是基于google app engine 也就是大名鼎鼎的GAE制作的.api放置空间的问题就很容易得到解决了,下面就说说搭建自己的OAuth验证方式API的方法.

首先自然要先注册一个GAE的账号,关于如何注册,应该来说还是比较简单的.相关文章也很多,可以自己google.我这里贴一个链接,当然,这一切的前提你得拥有一个google账号,步骤当中需要用手机接收一个验证码,可以放心填写手机号码,不产生费用

http://imnerd.org/apply-gae.html

注册好以后,下来就是搭建你的GAE上传环境了,搭建的话,著名的月光博客有一段描述,我就不重复了,给链接地址

http://www.williamlong.info/archives/1956.html

这里要注意一下,下半段讲的是关于BirdNest,这个是基于base auth方式的,可以不必理会.还有上传修改好的程序到GAE的话,google SDK安装好以后会带一个叫GoogleAppEngineLauncher,不需要手动去敲命令,直接用那个工具上传你的代码即可

准备工作做好以后,下来就是下载我们的主角gtap修改版,下载地址如下

http://code.google.com/p/gtap/issues/detail?id=9

注意看一下,最新的修改版在8楼,作者又更新了一点小bug,下载下来以后,你要做的事情是先把代码放着,这个时候你需要翻墙了.登陆twitter去申请app key

登陆Twitter程序中心注册一个新程序,注册的时候 Application Type选"Browser",Callback URL填入填写能访问到"callback.php"文件的完整网址,我们这里用的gtap callback地址是"https://xxx.appspot.com/oauth
/twitter/callback",Default Access type选"Read & Write"。注册完成后系统将自动分配给你"CONSUMER_KEY"和"CONSUMER_SECRET"

下一步就是打开下载下来的gtap文件当中的oauth.py,推荐用ultra edit打开,找到其中的 OAUTH_APP_SETTINGS = … 下面有两行'consumer_key': 和 'consumer_secret': 把你刚刚申请到的两个字符串填到里面去,保存退出

下一步打开app.yaml,修改你的application: 第一行,后面填上你GAE的app name

做好这些准备工作以后,你就可以正式上传你的gtap代码到GAE了.哈哈,用之前提到的GoogleAppEngineLaunche提交代码

上传完成以后,工作就完成了大半.哈哈然后就是访问访问https://xxx.appspot.com/oauth/twitter/login 点注册(这个时候需要翻墙来登陆一下twitter,完成之后就callback回去),完成后会显示一个key,你可以在gtap下面修改你的key, 其实也就是你的api密码,可以和你的twitter账户密码不相同,然后就OK啦 哈哈

最后一步就是在你的客户端程序当中,填入你的api地址 https://xxx.appspot.com/gtap_oauth/,用户名随意,密码就是你最后填入的那个key 注意这里是https,一开始我忽略了,只能看推,不能发,后来改成https就好了.

enjoy ; )

――――――――――――

补充一下,我们常用的twitter客户端 chrome下最好用的插件 chrowety ,iphone当中最好用的我觉得是TwitBird,有免费版,功能貌似一个不少.可能有广告吧.我买的是pro版,哈哈.还有就是塞班系统下比较有名 的Gravity,都是支持api的比较好的客户端



2 条评论:

Jian Shen 说...

我是新手啊,问个问题:从什么地方可以找到callback.php呢?下载地址?你说找个PHP空间?本文的方法是不用了吧?文中提到:https://xxx.appspot.com/oauth
/twitter/callback。说明google app支持PHP?GAE程序只要建立一个xxx就可以了?还是要两个,如果是一个的话那么oauth和文中提到的gtap_oauth就在一起了,可以下载下来的gtap没有目录结构啊?关于GAE我完全不懂或许问题弱智,望解答。邮件回复或者直接发文,我都会看到。多谢。

Unknown 说...

最后一步就是在你的客户端程序当中,填入你的api地址 https://xxx.appspot.com/gtap_oauth/,用户名随意,密码就是你最后填入的那个key 注意这里是https,一开始我忽略了,只能看推,不能发,后来改成https就好了.
------------------------------------
用chrome下的chrowety:https 死活连不上 http就正常了。 可以看 可以发 , 可以删除但是还会在chrowety中显示 实际上删掉了登陆网站看就没有了