用BirdNest在Google App Engine上搭建一个twitter API
本文转载自 http://www.junstyle.com.cn/
想在手机上看看twitter,下了个程序,但登录不上去,网上找来找去也找不到一个可以放心使用的api,看到一篇教程,用birdnest在google app engine上搭建一个api就好了,幸好gae还没有被封。
环境准备:Google App Engine
先要注册Google App Engine,注册地址 http://appengine.google.com/ ,然后建立一个application,目前第一次使用需要验证用户手机,输入手机号码就收验证码即可,之后,就可以用 yourid.appspot.com来访问你的app应用。
此外,还需要下载安装Google APP Engine的开发环境,注意Python的版本,需要是2.6系列的,不能使用3.1系列的,否则运行会出错。
Google App Engine SDK 下载地址 http://code.google.com/intl/zh-CN/appengine/downloads.html
Python 2.6.5 下载地址 http://www.python.org/download/releases/2.6.5/
环境准备:BirdNest
下载birdnest要注意是下载分支branches/gae,别下载主干trunk,否则更新到GAE上也不能用,会报错。可以使用一个SVN工具下载。例如TortoiseSVN等。 将其放到一个目录中,进入目录,编辑app.yaml文件,将第一行的application里的参数修改为自己的应用名。
发布应用到GAE
准备好了上面的一切后,就可以发布这个应用到自己的Appspot上了,打开Google App Engine Launcher。点击菜单创建一个新的application(这里创建的application名称要和上面修改的app.yaml应用名一样),然后把下载的birdnest文件复制到这个application的目录里面,(ps:在复制文件到这个application目录下面的之后,在我的电脑上发现Google App Engine Launcher里面的这个应用无效,最后把app.yaml用记事本打开重新保存一遍就好了,可能是文件编码的问题,如果你也出现了这个错误,可以试试把文件重新在记事本里面打开再保存一下),最好在Google App Engine Launcher里面选中这个应用后,点击Deploy按钮把代码上传到网上去,等待上传完毕后,你创建的API地址应该是:应用名.appspot.com/api/。
打开api可能出现的错误提示和解决办法
出现“internal server error”错误,这个看别个说是代码里面有问题,你可以尝试删除code.py里面的下面一段代码:
import socket
import re
ua = web.ctx.environ.get("HTTP_USER_AGENT", 'None')
if ua.find('jibjib') >= 0:
socket.setdefaulttimeout(60)
elif ua.find('zh-CN') >= 0:
#raise Exception('unknown error')
socket.setdefaulttimeout(2)
else:
socket.setdefaulttimeout(2)
如果不想去下载birdnest或者运行时程序出现错误,可以试试本站提供的压缩包:birdnest.rar
注意把app.yaml文件里面的你的应用名字改成你自己的。