整合twitese+twip+itap+rabr signup实现全功能免翻墙twitter
8月31日twitter彻底关闭了原来的basic auth方式,采用了安全性高的oauth方式进行验证。当天,google code上若干project都更新了新版本以应对这一改变。但是各个项目功能都比较割裂,比如twitese不能提供客户端用的api,也不能注 册;twip不能提供oauth proxy,必须连到twitter进行oauth验证,等等。因此,这个周末抽空整合了一个全功能(覆盖注册,客户端api,网页版,免翻墙 oauth)的twitter应用,在此提供方法,供大家以后架设时参考。
1.下载各个项目最新版的代码
1)twitese是我一直在用的第三方免翻墙twitter平台,最新版v1.4.3支持oauth代理方式登录,很方便。由于原项目主页被墙,因此作者新开了另一个project,1.4.3版在这两个地方都有,没有验证内容是不是一样。
原项目主页:http://code.google.com/p/twitese/
新项目主页:http://code.google.com/p/tuite/
2)twip,用来给手机等客户端提供api支持,最新版3.1.2能支持oauth
项目主页:http://code.google.com/p/twip/
3)itap,用来提供第三方的oauth,这样就oauth就不用翻墙了,最新版是r9
项目主页:http://code.google.com/p/itap/
4)rabr,我用了其中的signup目录来进行twitter注册,原本使用的是开源项目twreg,感觉有些累赘,没有rabr的这个清爽。
项目主页:http://code.google.com/p/rabr/
2.修改代码以连接各个组件
0)修改apache或者nginx的url rewrite规则
1)将twip文件夹命名为api放入twitese的文件夹
2)将itap文件夹命名为itap放入twitese文件夹
3)将signup文件夹从rabr中解压出来放入twitese文件夹
4)修改twitese的login.php,移除原本的basic auth的代码,增加到/signup/的注册链接
5)修改twitese/lib/目录下的twitter.php,支持140字以上推文的自动截取
01 |
function update( $status , $replying_to = false ) |
02 |
{ |
03 |
$args = array (); |
04 |
if ( $status ){ |
05 |
if (mb_strlen( $status , 'utf-8' ) > 140){ |
06 |
$status = mb_substr( $status , 0, 136, 'utf-8' ). " ..." ; |
07 |
} |
08 |
$args [ 'status' ] = stripslashes ( $status ); |
09 |
} |
10 |
if ( $replying_to ) |
11 |
$args [ 'in_reply_to_status_id' ] = $replying_to ; |
12 |
$args [ 'source' ] = 'twitese' ; |
13 |
14 |
$qs = $this ->_glue( $args ); |
15 |
$request = $this ->getAPI() . '/statuses/update.' . $this ->type ; |
16 |
return $this ->objectify( $this ->process( $request , $args ) ); |
17 |
} |
6.在/twitese/lib/config.php中定义自己的CONSUMER_KEY以及CONSUMER_SECRET和SITE_NAME之类的其他自定义项
如果没有CONSUMER_KEY,需要到http://twitter.com/apps/new申请一个。
7.修改/twitese/api/oauth_config.php
OAUTH_DIR是用来放oauth验证信息的目录,不要放在web能访问到的目录下,记得要chmod 777和chown
CONSUMER_KEY和CONSUMER_SECRET最好再去申请一个
OAUTH_CALLBACK是能够访问到/twitese/api/callback.php的绝对路径
SECURE_KEY是oauth验证文件的加密密钥,可以不修改
8.修改/twitese/api/index.php
1 |
$options [ 'webroot' ] = '/api' ; |
2 |
//因为我的twitese目录是web根目录,所以api目录的路径就应该是/api |
3 |
$options [ 'enable_oauth' ] = true; |
9.修改/twitese/api/include/twitteroauth.php来使用我们自己的itap进行oauth验证
10.最trick的地方到了,调试了半个多小时发现的问题,如果不做这一步会发现当callback的时候会直接重定向到/twitese/twip/index.php而跳过了oauth的验证文件。修改/twitese/twip/redirect.php
1 |
if (isset( $_GET [ 'oauth_token' ]) && $_SESSION [ 'oauth_token' ] !== $_GET [ 'oauth_token' ]) { |
2 |
$_SESSION [ 'oauth_status' ] = 'oldtoken' ; |
3 |
header( 'Location: ./clearsessions.php' ); |
4 |
} |
原来是$_REQUEST[‘oauth_token’],修改成$_GET[‘oauth_token’]就可以了,不知道原作者为什么这么些, 否则通过$_REQUEST[‘oauth_token’]访问到的东西不是通过url传过来的oauth_token,自然就被重定向 到./clearsessions.php去了。
好了,大功告成。
原文:http://hz-hc.net/2010/09/merge-twitese-twip-itap-rabr-signup-for-full-functional-fuckgfw-twitter.html
你好,请问这一项怎么修改?——0)修改apache或者nginx的url rewrite规则
这个我没有研究过,你可以Google搜素下,呵呵
你又还主题了。。。
没有呀,就是换了“主题风格”
你帮我看看那六个风格那个好!