教程:跟着船夫三步简单搭建推特twitter oauth api
此 教程主体上为三大步骤,对于以前搭建过的推友来说内容略显繁琐,但为了使更多推友,尤其是新手,能够顺利通过GAE上推,我觉得这种详细是必要的,所以我 夸张地称“此教程可能是目前最为详尽的API搭建教程”。虽然我认为教程已经够详细了,但推友还是会在搭建过程中出现各种各样的问题,推上不适合做详细解 答,如有疑问,首先请仔细研究教程!google是你最好的老师!也可留言,我会尽快解答。如需其他联系方式,请上推特索取,谢谢理解。
最新教程下载地址 http://www.rayfile.com/files/d7ad1a00-86d4-11e0-8589-0015c55db73d/
跟着船夫@boatman三步简单搭建推特twitter oauth api(教程结尾处有两枚API与推友分享)
2011.05.31 更新,支持android系统。经推友反馈,GAE的API可用于安卓手机。具体方法为:GAE的API一枚+修改hosts+seesmic客户端。 android手机端修改hosts后,翻墙打开API地址进行oauth验证,并修改API密码。然后用seesmic客户端(支持API)设置好 API地址就可以了。关于修改HOSTS和设置API请参照教程第三步3、4。修改hosts使API复活的方法IOS应该同样适用,只差实践证明,欢迎 苹果用户测试。
2011.05.25重要更新:解决基于GAE的API搭建成功后,打开api地址出现“AttributeError: can’t set attribute”报错的问题,建议搭建成功的朋友们更新。解决方法为更新GTAP到r74版本,本人博客提供gtap_r74的飞速网盘下载地址 http://www.rayfile.com/files/0c2fd73a-86d1-11e0-a709-0015c55db73d/ ,欢迎大家下载后给分享更多的网盘下载地址。具体更新办法参考教程第三步。另外,需要特别注意的是,在GTAP文件中app.yaml的version: 3必须和GAE程序的version一致。查看并设置GAE的version的方法为:登陆https://appengine.google.com/ ,
打开所建程序,在main主目录下找到version,并设置为3(需和GTAP的version一致,教程提供的GTAP的version为3;如果你上传的GTAP的version为1,则GAE程序的version应设置为1;如果GTAP和GAE的version不一致,则仍会出现报错)
2011.04.13 更新:目前搭建成功后,打开api地址会出现报错页面,具体报错为“AttributeError: can’t set attribute”导致新搭建的api无法验证,也就导致了新搭建的api无法使用,所以请大家暂停搭建先,以后如果恢复正常我会及时更新博客。另外, 先前搭建的api仍可以正常使用,只不过进入api地址页面同样会报错,但不妨碍使用。
(2011/02/22更新)由于GFW的关系,在近期乃至今后相当长的时间内appspot可能将经常无法正常访问,这直接导致了GAE API无法使用,但修改hosts文件即可使用,所以大家不妨搭建一个,还是非常实用的。
PS:目前因为gfw的屏蔽,手机端暂无法使用GAE的api,但如果你的手机可以修改hosts,那么不妨尝试一下教程中修改hosts的方法是否可用。
==========我是分隔符=======以下为教程==========
第一步,注册GAE应用程序:
登陆或注册Google App Engine(简称GAE)账户。因为我们要通过GAE来搭建API,所以肯定要有账户了,如果你有Google账户,可以直接使用(没有的注册一个也很快的注册地址 https://appengine.google.com/ )。点击Create an Application按钮,输入唯一的应用程序注册名(6个或以上小写英文字母),标题随便写。
点击Create Application。完成后,如果第一次使用,谷歌会要求输入手机验证码,必须加上国家代码,中国大陆是+86,比如移动号码:+86136XXXX6666,然后把短信收到的验证码输入进去,提交,谷歌就会提醒你创建成了。第一步“注册GAE应用程序”成功。建议老用户也注册一个新的GAE程序,降低搭建API过程中的出错率。如果收不到短信,请点击try again重新发送尝试,或点FAQ向google反映,具体请搜索关键字“GAE 收不到短信 china mobile”。
第二步,注册Twitter程序,获取oauth需要的key和secret,需要先翻墙:
正文:打开https://twitter.com/oauth 登陆twitter
点击注册程序Register an application
如果网络信号不好,上传程序图片可能会导致无法注册,建议先不传图片。
程序名就是api显示的个性名称,必须是唯一的,介绍必须在十个字符以上,否则无法注册。
提要:1. 注意红圈中的事项
2.Callback URL 务必填写为http://XXXX.appspot.com/oauth/twitter/callback
“XXXX”为注册的GAE程序名,比如我注册的“followboatman”
3.Default Access type 要设置成 Read & Write ,否则无法发推 (新版推特此项应设置为read, write, and private message access ,添加了对私信private message的认证,建议此前搭建的进行修改)
4.完成注册后得到 Consumer key 和 Consumer secret,建议不要关闭此网页,或保存一下这两个数据。
至此,我们的推特程序已经注册成功了,如果你想上传图片更换API个性名称,可以登陆https://twitter.com/oauth ,点开你注册的推特程序,然后点Edit application settings进行修改。
下面着手api认证。
第三步,进行api认证(所需软件及GTAP文件打包网盘下载由于网盘被封,不再提供打包下载)
http://u.115.com/file/f82668225 (115网盘,请选择备份下载已被举报,大家可自行搜索相关软件下载):
1.安装相关软件及修改文件,完成api建设。上传需要安装两个软件,首先安装python.msi(请安装2.x版本),然后安装GoogleAppEngine.msi,一定要按顺序安装,建议默认安装路径,软件可以自己搜索下载,当然我提供网盘里面有(由于网盘被封,不再提供打包下载,请大家自行搜索python和GoogleAppEngine)。
2.修改gtap文件(此文件需下载最新的r74版,不然会报错,建议直接下我提供的 http://www.rayfile.com/files/0c2fd73a-86d1-11e0-a709-0015c55db73d/ )。
解压完“GTAP”文件保存到任意位置(解压路径不要包含中文字符!)。打开gtap文件夹,修改app.yaml,选择打开方式为“写字板或记事本”,打开后修改第一行“application: 替换为申请的GAE用户名”相信这个不用多说了,比如我的修改为“application: followboatman”,其它地方我已改好,你们就不用改了。
修改main.py,选择打开方式为“写字板或记事本”,要改什么一目了然。把前面注册推特程序时获取的oauth需要的key和secret替换进去就OK了,注意填在那两撇里面。
CONSUMER_KEY = ‘替换为注册TWITTER应用程序得到的KEY即可’
CONSUMER_SECRET = ‘替换为注册TWITTER应用程序得到的SECRET即可’
3.上传
打开GoogleAppEngine软件,点File,然后点Add Existing Application,再点browse…,选择gtap文件夹,点击Add。
添加成功后,鼠标点一下你搭建的这个应用程序,选择绿灯,RUN.跑过之后,选择Deploy,输入你的谷歌邮箱(当然是注册GAE的邮箱了)和密码点OK,等着吧,大概不到一分钟,对话框提示“Closing update: new version is ready to start serving.You can close this window now”,上传成功。(如果字符里面有error,说明你哪一步肯定错了,要核对一下,一般跟随船夫的脚步错不了,哈哈)
如果GAE软件出现错误,请尝试以下解决办法:1.删除GAE配置文件,在其所在盘一般为C盘,分别搜索google_appengine_projects.ini和google_appengine_launcher.ini并删除。2.重装Python 2.XX版本
至此,GAE oauth api 已经搭建成功。
千万别忘了API地址最后的那个“/”,把xxxx换成你的GAE程序名,比如我这个教程建立的followboatman,也就是
http://followboatman.appspot.com/ 还有最后一步,认证。
【由于GAE经常被墙,为避免以后API无法使用,墙裂建议直接修改hosts。】
修改hosts文件:
以Windows系统为例,打开C:\Windows\System32\drivers\etc ,找到hosts,以记事本的方式打开hosts文件,在最尾端添加以下IP字符和gae程序地址(一个程序名只可对应一个IP地址):
74.125.153.104 替换为你的GAE程序名.appspot.com
例如:
74.125.153.104 tweetforcn.appspot.com
203.208.39.104 twiforcn.appspot.com
203.208.39.104 followboatman.appspot.com
其中第一个ip地址对应的API地址为https的(加密),第二个和第三个是http的(普通),https和http是什么意思呢?其实就是加密传输与明文传输的区别。说的明白些,你如果将gae的api绑定到第一个ip上了,以我搭建的一个名为TweetForCN的API为例,那么它对应的地址应为:https://tweetforcn.appspot.com,无论是验证api还是在客户端使用api,都必须使用https://加密方式的。同理,如果绑定到了第二个ip,那么对应的就是http://非加密的。但不能一个API同时使用这两个IP地址。本教程搭建的api都支持https和http,可按需使用。
我建议大家使用加密方式(更新:目前修改为加密方式比普通方式不稳定)。以前我建议推友使用非加密的方式,是因为GAE的https加密传输被墙了,而http则未被墙,比较方便。虽然现在GAE也没完全被墙,但几乎快被方校长(你不知道方滨兴?)废了,所以既然无论怎样都要修改hosts了,那还不如绑定加密的IP地址,即使用https的方式使用API,这样的话,更有安全保障。当然,也可以使用普通传输,因为有的客户端不支持api加密传输的(比如twhirl)。(更新:目前修改为加密方式比普通方式不稳定,如无法使用加密方式请自行更换为普通方式)
如果不想使用教程中的IP地址,可自己ping google.com获得IP,当然这个IP是否支持加密传输就要自己测试了。如果你有IPV6环境,则也可以在hosts中添加Google的ipv6地址。
其他系统修改hosts文件方法请自行Google。【由于GAE经常被墙,为避免以后API无法使用,墙裂建议直接修改hosts。】 【为了能正常访问船夫的博客,建议朋友们在hosts中添加如下字符】:
203.208.39.104 boat-man.appspot.com
4.此步必须先翻墙才可完成认证。
翻墙先,然后浏览器中打开你的api地址 (建议验证时使用https加密方式)
如https://followboatman.appspot.com/
出现以下界面就说明搭建成功了。
最后的话,仔细看:点sign in with twitter,登陆后点Allow,在the new key里输入一个密码作为你使用这个API的密码,可以设置的与推特密码不同。
可能有些人不明白这一句话,简单的说,你在有些第三方软件比如TweetDeck中使用这个API,你就不用使用推特密码了,你的登陆方式为:推特账户+API密码+API地址,这样就能登陆了。但如果你设置的API密码和自己的推特密码一样,直接输入推特账户+推特密码+API地址就行了。PS:有些第三方软件API密码必须和推特密码一样才能使用。自己搭建的api,密码的设置设置为推特密码一样是最方便的,密码也只有自己知道,也很安全。使用别人提供的api时,建议大家使用TweetDeck,配合GAE的api效果不错,关键是密码可以不一样,安全性更高。
设置完新密码后还会返回到这个界面,不用管它,设置一遍即可,这个api密码是以最后设置的KEY为准的。比如最早是一长串字符,你改成了123456退出,那么123456就是API的密码,但下一次再进去认证的话,这个KEY又变成了长串字符,它是变动的,你只需改了它然后退出就可以用了。想改api密码的时候再进,不改就不要进啦。
API的搭建和认证工作已经完成,为了你能更快的熟悉API在第三方客户端的应用,下面我以tweetdeck为例,简单的说一下怎么使用这个api。
首先,下载安装Adobe AIR
然后下载安装TweetDeck的桌面客户端
http://www.tweetdeck.com/desktop/
(这两个软件网盘打包中有)
此步仍需翻墙才可成功设置!首先运行tweetdeck,添加twitter帐户和“twitter密码”,登录成功后,点击设置(图标为小扳手),再次添加推特账户,重新输入twitter账户和“设置的api密码”(如果你设置的api密码和推特密码不一样,一定要输入api密码才可使用此api),点开下面的Advanced Options,输入你搭建好的api地址,比如本教程中的:http://followboatman.appspot.com/
不要忘了最后的那个‘/’
然后点击Verify认证,不出意外的话,你应该已经刷出来推了,但字体可能不能正常显示,打开设置,colors/font 把字体改为international即可。如果还刷不出来就重新把这几个步骤来一遍。以后用tweetdeck不用翻墙就可以上推了,不信的话关闭翻墙软件,重新启动tweetdeck试试吧。API在其他客户端的应用和这个原理是一样的,具体别的软件怎么用自己慢慢琢磨吧,不知google之。
你若通过此教程成功上推,希望上推告知我,分享喜悦,有问题可以联系我。你若还搞不定,没关系,我提供两个API供推友们使用,但账户安全要自己负责哦,所以还是尽快搭起专用的更快速更安全的API吧!供推友们使用的oauth API(当无法正常访问时,同样需要修改hosts):
http://followboatman.appspot.com/ 名字叫“墙上的另一块砖”
http://twiforcn.appspot.com/ 名字叫“草泥马推特”
结语:善于探索,关注船夫。欢迎推上围观 @boatman http://twitter.com.boatman
欢迎转载到您的博客,请注明出处,长期更新 http://is.gd/jhY4 http://is.gd/i6sGe 。
今天偶然发现:不到https://twitter.com/oauth去认证,而到https://twitter.com/apps 去认证api,就可以更改api的权限了,解决了上面的问题。————不知道为什么,汗!
查到原因了,好像twitter公司不对appspot的域名授权了,不知道是不是这样
这样就无解了?
请问你用的是什么api上推特的?
我没有用过api上推特,都是翻墙上官网网页。
弄好了之后提示这些东西:
This application will be able to:
Read Tweets from your timeline.
See who you follow.
This application will not be able to:
Follow new people.
Update your profile.
Post Tweets for you.
Access your direct messages.
See your Twitter password.
请教:是不是这个api过时了,还有这么多不能的
可能是,你看看 http://code.google.com/p/gtap/downloads/list 和 http://code.google.com/p/twiproxy/downloads/list
谢谢!!都试过了还是不行,问题同前一样。我用的是mixero,提示是:不能从twitter加载列表,自动化twitter列表管理在此会话中将被禁止。
这个我就不知道了,没有测试过,你可以在项目上把问题反馈给程序作者,希望能修复。
谢谢,知道了
Downloads – googleappengine – Google App Engine – Google Project Hosting
https://code.google.com/p/googleappengine/downloads/list
“google_appengine_1.5.1_prerelease.zip Google App Engine Python pre-release SDK 1.5.1 Prerelease 6 days ago 6 days ago 11.4 MB
appengine-java-sdk-1.5.1_prerelease.zip Google App Engine Java pre-release SDK 1.5.1 Prerelease 6 days ago 6 days ago 38.2 MB ”
(教程:跟着船夫三步简单搭建推特twitter oauth api )
https://twip.bluemask.net/
“Welcome to TwGate.
https://twip.bluemask.net
TwGate是一个Twitter API转发服务,本服务与客户端之间使用SSL通信。
已注册用户请点此登录»
或者注册»”
https://code.google.com/p/twgate/
“A t|w/i/t/t~er AP1 pr0xy, support multiple users, deploy with mod_wsgi.
twgate是一个python编写使用bottle框架搭建的tw1tter ap1 pr0xy。 本项目样本服务运行于:https://twip.bluemask.net,欢迎使用/试用
特点
支持多用户,且每个用户可自定义发布source(需用户自己在tw1tter.com官方站创建)
自带简单的阅读tvveets的界面
自带fo/unfo,发布status、reply/retvveet等功能
经测试支持seesm1c(1替换为i,创建帐号时勿开启xauth)
下载
直接在命令行下运行
svn export https://twgate.googlecode.com/svn/trunk/ twgate
(将最新代码下载至你的当前目录下的twgate目录内)
部署要求
无须额外的预设置,使用mod_wsgi部署,入口脚本为gate.wsgi
需要sqlite3支持,某些vps可能需要单独手动安装sqlite3(以后会改进)
强烈建议部署在SSL支持的主机
计划
添加除sqlite3之外的本地数据存取支持,以便可以运行在google app engine之上
更完善的ap1接口支持
目前的代码比较丑,基本陆续写下来没回头整理,controller分布的到处都是,有空再慢慢整理了,赫赫 欢迎任何建议,欢迎有兴趣的朋友加入!
contact: small.fzgmail.com “
感谢支持,已发
1.Twitter in Egypt:
http://asia.cnet.com/crave/speak-to-tweet-lets-egyptians-bypass-internet-to-tweet-62113866.htm
https://twitter.com/speak2tweet?_escaped_fragment_=/speak2tweet#!/speak2tweet
http://www.techspot.com/news/42221-china-starts-censoring-the-word-egypt.html
2.Haben Sie schon die Software:TweetDeck,sobees,WindBird,mixero,twhirl,iFan… etc., mit AdvOR (option: ” Intercept “BETA” ” und “Bypass ISP filtring”) probiert ?
“你好”
感谢支持。。
在安装tweetdeck时,提示错误
安装好Adobe AIR后才能用吧