用GAE搭建自己的个性化推҉特҉API
本文将以尽可能最详细的方法,讲述使用Gtap搭建自己Twitter API的整个流程,并尽可能保证每一个步骤都配有截图做参考,以便大家理解。不过这样一来,文章版面可能就会被拉的较长,所以。。。就不罗嗦多余的话了。。。 正文开始。。。
- 搭建部分 -
首先需要到 Google Appengine 新注册一个程序(一定不要上传到以前申请的别的APP上)。注册方法非常简单,和前几天写的“用GAE来搭建自己专用的翻҉墙҉代҉理҉ ”的开头部分一样。
注册好Google Appengine,得到了 xxx.appspot.com 的域名后,下面就正式开始搭建这个Twitter API了。

首先需要先翻墙访问:http://dev.twitter.com。然后注册一个新的App(如上图)。

注册时所填的表单,名称,说明,和网址,都可以随便写自己喜欢的。但一定要注意上图中红线圈起来的部分,也就是 Application,Callback URL,Default Access type,这三处。Application Type 要选择“Browser”,Callback URL地址要填写“http://gtap.appspot.com/oauth/verify”,Default Access type 要选择“Read & Write”。

成功注册了App后,会返回一个包含各种信息的页面,其中包含接下来需要用到的 Consumer key 和 Consumer secret。将此页面暂时保留。

接下来,点击这里下载Gtap,然后解压到本地硬盘中。进入gtap的文件夹,用你习惯的记事本工具打开 main.py 文件,然后修改 14,15行的 CONSUMER_KEY 和 CONSUMER_SECRET(如上图),将图中“小明同学的KEY”替换成你刚刚在Twitter申请到的 Consumer key,把“小明同学的密钥”替换成你的 Consumer secret。然后保存。

接下来,打开 app.yaml,修改第一行,将上图中“小明同学的程序名”替换成你在Google Appengine新申请到的名称。如果你不是在我这里下载的gtap,那么还需要确认上图中,最后一行 secure 那里是“optional”。确认无误后,保存并关闭。

程序已经准备完毕,下面运行 Google App Engine Launcher 来讲程序上传到GAE。点击“File – Add Existing Application…”添加程序目录。
注意一点,这个无法通过SDUpload这个第三方的上传工具上传。。。很残念。。。如果你没有安装过Google App Engine的客户端,那么需要先下载并安装Python2.7(可能被墙,请随时翻墙下载),然后在下载安装Google App Engine即可。

在Google App Engine Launcher中添加好程序后,点击工具栏的“Deploy”,之后会弹出一个窗口,输入你的Google帐号和密码开始上传。

上传时的提示窗口是这个样子的。。。你不需要等待很长时间,当你看到窗口中提示你“You can close this window now.”的字样时,就可以关闭Google App Engine Launcher了。这时你已经完成了全部工作。接下来就是如何使用这个API了。。。
- 使用部分 -

API已经搭建好了,你可以翻墙点击上图中的“Sing in with Twitter”按钮,验证一下后自己一个人使用,也把你申请的 xxx.appspot.com 这个地址发给你的好友,他们只需要经过一步简单的验证就可以使用了。
※验证的过程中,需要开启代理,并先登录Twitter的网站。

点击“Sign in with Twitter”链接后,会跳转到Twitter的API验证页面(如上图),点击“Allow”按钮,同意应用程序访问你的帐户。

接着,Twitter的API页面验证完毕后,会再次跳转会你的 xxx.appspot.com 的页面,并给你一个表格(如上图),上面显示的是你Twitter的用户名,密钥。在“the new key”的栏中,填入你要修改的新的密钥。可以填写你的Twitter密码(但不推荐),一般随便填一个你能记住的单词,网址,邮箱。。。就可以。这个密钥相当于你通过这个API来链接Twitter的一个验证密码。

一切已经准备就绪,接下来使用那些支持API的客户端来登录你的Twitter就可以了。。。
因为我这里的客户端有限(平时我都是用Chrome的扩展来上推的),只测试了 TweetDeck和Spaz两个桌面客户端,非常好用,速度很快。
以TweetDeck的设置来举例,进入软件的选项,然后在“Accounts”中,添加或修改你的Twitter帐户,点击“Advanced Options”,输入你的API地址,也就是 “http://xxx.appspot.com/”。千万记得最后的斜杠“/”别忘了。。。呵呵。。。然后在上面填上你的Twitter用户名,和。。。不是你Twitter的密码哦。。。呵呵。。。 这里的密码要填刚刚上面让你修改的那个API的密钥,就是让你随便改成单词,网址,或邮箱的那个API的密钥。然后保存。。。
现在开始。。。你不需要翻墙,也可以用这些支持API的客户端来上推和发推了。。。呵呵。。。:)
已经测试过没任何问题的客户端有:TweetDeck,Spaz,以及Chrome浏览器的推特扩展 Chrowety。
已知目前无法使用这个API的客户端有:Chrome浏览器的推特扩展 Chrome bird。(这个可以用Chrowety替换,经过长时间的测试,Chrowety现在比以前稳定多了,几乎不再出现发推出囧的BUG了。)
最后,附上一张通过个性化API发推的效果截图:

至此,整个流程讲解完毕。。。 如果还有疑问,可以在下方留言。
如果讲解到这个程度还是无法搭建。。。 我也可以把此教程中搭建的API共享出来给大家使用。。。 但出于种种不可抗拒原因,我不会公开发布。如果需要,请到Twitter上DM找我要(Twitter:@newChen)。(同样出于种种不可抗拒原因,Follower的数量太少的,即使DM我,可能我也不会回复的。。。抱歉。。。)
最后附上一个小段子,小娱乐一下。。。
高官:小姑娘,你得小心点!我可是有后台的人!
姑娘:你一样也得小心点哦,我可是有Twitter的人。
高官:(“▔□▔)
姑娘:╮( ̄▽ ̄”)╭
全文完。
- 以上 -
—————— by:热心于推广翻҉墙҉和推҉特҉的 夜の猫







我按说明弄成了,能登陆那个**.appspot.com,并且改了密码。但是用seesmic链接的时候,your account cannot be added,和解?
你好,我现在重新上传了,可是访问的时候出现了Traceback (most recent call last):
File “/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py”, line 701, in __call__
handler.get(*groups)
File “/base/data/home/apps/s~anniaty1/1.354584768090676334/main.py”, line 134, in get
self.do_proxy(‘GET’)
File “/base/data/home/apps/s~anniaty1/1.354584768090676334/main.py”, line 95, in do_proxy
return success_output(self, gtap_message )
File “/base/data/home/apps/s~anniaty1/1.354584768090676334/main.py”, line 34, in success_output
handler.response.status = ’200 OK’
AttributeError: can’t set attribute
这个提示,是什么原因啊
望回答,谢谢
你好,我按照你说的方法申请了twitter的api后,修改的也修改了,也上传了,可是最后等我访问anniaty1.appspot.com/的时候,提示说Error: Not Found
The requested URL / was not found on this server.请问这是怎么回事啊?
估计是没上传成功吧。。。。
你好,我想询问一下,现在还可以申请到twitter得api吗。。。就是我打开dev.twitter.com。进去以后,怎么没有申请的选项啊。谢谢!
现在具体不太清楚。。。应该可以的吧。。。
您好,按照您的操作,遇到问题如下,盼您的指点呵
Traceback (most recent call last):
File “/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py”, line 700, in __call__
handler.get(*groups)
File “/base/data/home/apps/garcia/1.350295586513600300/main.py”, line 136, in get
self.do_proxy(‘GET’)
File “/base/data/home/apps/garcia/1.350295586513600300/main.py”, line 96, in do_proxy
return success_output(self, gtap_message )
File “/base/data/home/apps/garcia/1.350295586513600300/main.py”, line 35, in success_output
handler.response.status = ’200 OK’
AttributeError: can’t set attribute
我的也是这个情况,该怎么解决啊
小明同学的程序名填什么?
就是你Google App申请的程序名。
博主你好,我是用你的方法搭建API的,用GAE上傳成功了,但是當我打開http://xxx.appspot.com/顯示的是:
Traceback (most recent call last):
File “/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py”, line 634, in __call__
handler.get(*groups)
File “/base/data/home/apps/xxx/1.349732933579210201/main.py”, line 134, in get
self.do_proxy(‘GET’)
File “/base/data/home/apps/xxx/1.349732933579210201/main.py”, line 95, in do_proxy
return success_output(self, gtap_message )
File “/base/data/home/apps/xxx/1.349732933579210201/main.py”, line 34, in success_output
handler.response.status = ’200 OK’
AttributeError: can’t set attribute
原本我以為是自己的問題,後來上網再搜索,用漁夫提供的已經設置好的API打開,結果頁面也是顯示這個結果.請問博主,我該如何解決呢?我是用目田門的.
你好,我按照博主的方法用GAE上傳了文件,然後打開http://xxx.appspot.com/時,打開的頁面是這樣的
Traceback (most recent call last):
File “/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py”, line 634, in __call__
handler.get(*groups)
File “/base/data/home/apps/xxx/1.349732933579210201/main.py”, line 134, in get
self.do_proxy(‘GET’)
File “/base/data/home/apps/xxx/1.349732933579210201/main.py”, line 95, in do_proxy
return success_output(self, gtap_message )
File “/base/data/home/apps/xxx/1.349732933579210201/main.py”, line 34, in success_output
handler.response.status = ’200 OK’
AttributeError: can’t set attribute
另外,我打開另一個別人在網上公佈的已經註冊好的API也是這樣,請問要如何解決呢?我是用目田門翻牆的.
您好,我在运行 Google App Engine Launcher 这出现了问题,出现:
Warning: Prerequisites for App Engine development are missing!
A valid python binary must be available. In addition,the App Engine SDK must be installed. Here are the current values we found:
python = None
App Engine SDK root = C:\Google\google_appengine
Please install the missing pieces and restart the launcher.If these are installed but the Launcher failed to find them, you can configure their location by editing Launcher preferences.
The Launcher preferences can be modified by selecting Edit > Preferences
如提示,进入Google App Engine Launcher控制面板。选择Edit–Preference,将Python Path设置为你安装的正确路径,C:\Python25\python.exe.再重新运行Google Ap Engine Launcher,不再提示错误。
但是,成功添加应用程序后,鼠标点一下你搭建的程序,无法点击RUN,进行下一步的操作。(传说中会有个绿色小灯,在我这里显示的是灰色的实心小点点)
所以又在网上搜索解决方法:删除GAE配置文件:google_appengine_projects.ini和google_appengine_launcher.ini,无效后。重装Python 2.5.4 五次以上也都失败。(2.7.1安装不了)
我有确认步骤,首先安装python2.5.4.msi,再安装GoogleAppEngine.msi1.4.2(1.3.8也尝试过但是没有任何效果),默认安装路径。
反复确认应该没漏看步骤,请您帮帮我!期盼您的回复,麻烦您了。感激不尽。
本地需要安装Python2.x才能正常运行GAE,另外GAE主要是负责上传程序到appspot,并不需要本地运行。
恩,谢谢回复,可能是俺表述不清,造成您的误解:“重装Python 2.5.4 五次以上也都失败。”这里的失败是指鼠标点在要搭建的程序,照样无法点击RUN,进行下一步的操作。
你可以试试python2.6或2.7。
另外不需要本地运行程序,直接用GAE上传就可以,或者尝试用命令行的方式上传。
请问 TweetDeck在填了API之后点Verify Details以后一直是Validating…这该怎么解决……
现在Tweetdeck好像使用不了GAE的API了。。。
谢谢lz的详细介绍,有个小白问题,所有的东西都搞定,app engine launcher上传成功之后,打开申请好的API地址:xxx.appspot.com之后,直接跳回了twitter首页= = 请问哪里出了问题?不胜感谢!
访问API地址应该可以看到一个验证的链接按钮,点击按钮后会跳转到推特的页面进行验证(推特在登录状态),同意程序访问推特账户后,会自动跳回到API页面,并给出API的各类信息。如果不是这样,有可能是API在搭建的时候有问题。
谢谢,我倒register new application那里再重新设定一下
试了一下,好象说twitter 在维护中