支持OAuth的Twip
Twitter官方宣布将在6月30日终止对Basic Authorization验证方式的支持,广大使用API的天朝网民纷纷表示鸭梨很大~目前最新版的3.0版Twip还不支持OAuth(2.2版支持),前几天问了下yegle童鞋,最近似乎都没有更新计划。正好最近不算太忙,一时手痒,经过一星期的“艰苦奋战”,终于让Twip 3.0支持了OAuth,命名为Twip 3.1~~原本前几天就打算发出来的,这几天不断有改进的想法冒出来,本着“精益求精”的想法,拖到了今天……
系统要求
- PHP版本大于5.2.4并已启用curl
- 若采用Apache需支持mod_rewrite
- mcrypt库(用于加密access token,没有也能工作)
配置方法
猛击这里下载源代码。另外,也可以使用svn checkout这个地址:http://twip.googlecode.com/svn/branches/heybronco/。基本的配置方法可参见yegle写的wiki。这里主要说一下OAuth的部分。
- 使用OAuth验证发推时将不显示连接到twip的客户端,而是显示与twip中OAuth CONSUMER_KEY和CONSUMER_SECRET对应的注册程序。源代码里已经包含可用的CONSUMER_KEY和CONSUMER_SECRET,对应的程序名称为”Development”,这个是编写”TwitterOAuth Library”的Abraham Williams放在示例代码中的(已经失效)。若希望使用自定义的程序名,请前往Twitter程序中心注册一个新程序,注册的时候Application Type选”Browser”,Callback URL填入填写能访问到”callback.php”文件的完整网址,Default Access type选”Read & Write”。注册完成后将”CONSUMER_KEY”和”CONSUMER_SECRET”填入”oauth_config.php”中。
- “oauth_config.php”为OAuth相关配置的文件,其中OAUTH_DIR指定保存OAuth token文件的位置,请放在一个web用户无法访问的目录中,比如public_html(www)目录的上一级,注意权限问题,同时确保以”/”结尾;CONSUMER_KEY和CONSUMER_SECRET使用默认或者替换成自己的;OAUTH_CALLBACK中填写能访问到”callback.php”文件的完整网址;SECURE_KEY中保存的是加密数据所用的随机字符,可以随便填入字符,或者保持默认。
- 检查index.php中”enable_oauth”项已经为true以启用OAuth,配置完成。
使用方法
访问twip的首页,页面将显示当前Twip所使用的身份验证方法等运行状态及操作说明。注意,若twip的架设者启用了”PRIVATE_API”选项,首页上将给出提示,此时需要确保自己处于被允许的用户范围,否则即使获得了access token也无法使用此API。另外,access token是否被加密存储也会显示在首页上。
获得access token需要翻墙。点击”Sign in with Twitter”按钮,进入Twitter登陆界面,输入自己的用户名和密码后,转到授权界面,询问是否授予相应权限给应用程序,点击”Access”按钮,进入保存token界面,此时要求输入密码。这个密码是用于访问保存在twip服务器上的access token文件的密码,所有通过此twip进行的发推等操作均需要使用此密码,这里称为API密码。API密码可以与自己的Twitter密码相同或不同,但若要使用Mixero,请填写Twitter密码。因为Mixero不通过API来校验密码,若API密码与Twitter不同,要么无法登陆,要么无法获得Twitter信息。完成后点击”保存”按钮,页面跳转到首页。若能看到你的timeline,说明access token获得成功。之后就可以在客户端使用用户名和API密码登陆了。
如果忘记了自己的API密码,可以点击”Sign in with Twitter”按钮来重新获得access token,原来的记录将被覆盖。若不想再继续使用此API,可进入自己的Twitter设置界面,在”connections”页面中找到此API,然后点击”Revoke Access”来移除访问许可。当然,也可以直接把twip中保存的access token删除,方法是在首页上点击”login”,输入用户名和API密码后,点击”remove the token”即可。
使用Gravity等支持OAuth的客户端需要注意一下,在添加账户的时候验证类型要选Plaintext而不是Oauth/Secure,同时账户密码填入的是API密码。Update:用户名不能填email,否则会验证失败。(才知道原来能用email登陆Gravity,thanks to mxwu)
对于想使用byethost主机的筒子们屏蔽了twitter的主机,很遗憾,使用ip替换是没办法使用OAuth的。因为在请求token的时候若使用ip地址来访问,Twitter会返回一个301,重定向到twitter.com。若点击”Sign in with Twitter”之后出现”Could not connect to Twitter. Refresh the page or try again later.”,最大的可能是主机屏蔽了Twitter,目前除了换主机以外没有解决办法。当然,敝人水平有限,也许有解决办法也说不定,这个就等待高人来解决了。
另一种可能是key和secret失效,这个可以通过查看Debug info的http_code来确定。若为401,则表示key和secret已经失效。
安全问题
之前在推上看到有人质疑兽兽@showfom的饭否会有安全性问题,这边也会着重考虑这个问题。
若空间支持mcrypt库,access token会被加密。是否加密会在首页显示,你可以据此决定是否使用此API。access token以API密码和SECURE_KEY作为密钥进行blowfish加密。API密码将进行MD5计算,结果拼接SECURE_KEY后进行第二次MD5计算,计算结果和access token的密文以文件的形式进行保存。这样,即使是twip的拥有者也无法使用access token。若空间不支持mcrypt库(这个基本很少吧),access token将不会加密。
当然,因为twip是完全开源的,谁都可以来修改代码,上面说的安全性不一定能得到保证。至于用不用,看你自己吧。
版权
Twip原版使用Mozilla Public License 1.1授权,TwitterOAuth库虽没写明授权协议,但也有相关授权说明。若需要进行再次开发以及发布,请一定遵从相关协议的说明。
其他
感谢党,感谢国家,感谢@yegle和@xmxsuperstar,感谢Abraham Williams,感谢Dreamhost。
Twip原版的相关信息可参考其Project Website。TwitterOAuth库相关信息参考这里。
ps一句,本来打算找个免费空间来演示的,可惜找了几个都没搞定,哎~~~大家就自己慢慢试吧~
以上!
沙发,谢谢了!
@yueerfei
呵呵~速度很快啊~~
停止Basic Authorization验证方式会怎么样?普通的API没办法用了?
@love_stef
是的。普通API通过Basic Authorization来验证身份。
狂顶了….谢谢了
oauth + twip配合Gravity的成功例子么?
折腾了许久也为成功。。
不知道是Gravity的问题还是twip的问题。
@mxwu
嗯~文章里加了段说明,添加账户的时候验证类型要选Plaintext而不是Oauth/Secure,同时账户密码填入的是API 密码,可以再试一试。我自己测试是成功的。
去折腾试试
PS 这首歌很熟悉的说~
@Bronco
选plaintext的话还是oauth么?
twitter马上要关闭plaintext验证了,所以在寻找oauth的方法。
@mxwu
是的。现在twip的工作原理是对Twitter的读写采用OAuth,所以Twitter那边关闭了basic auth也没问题。而twip与客户端的交互采用的是basic auth,所以会有个API密码。因为现在twip还无法直接转发OAuth的验证数据,所以采用了这种工作机制。
俺也去折腾看看
@Bronco
多谢折腾了一会终于搞定了。
Gravity一定要用用户名而不是email,这点补充进去吧:)
@mxwu
新版twip是按照screen_name来保存token的,用email肯定是搞不定的。估计老版本的因为是直接发送,所以可以吧。anyway,thanks~
诶?我所有的登陆都是用用户名的啊~原来Gravity用email也可以啊?
您用的是Dreamhost空间吗?
我在Dreamhost上的Twip本来用得好好的,这两天突然坏了,没有用OAuth,最基本的都不行了,那个测试网页应该可以显示5条最新tweet的,现在也显示failed。换了好几个版本的Twip都不行,太郁闷了,难道是Dreamhost把这个封了?……
@小骆驼商队
是的啊~目前来看似乎一切正常~
其实检查API是否正常工作最简单和直接的办法是直接获取public_timeline,比如输入:“你的api地址”/statuses/public_timeline.xml,如果API正常,会返回xml格式的最新的推。如果问题出在Twitter服务端,也会返回相应的错误信息,这样排查问题会快很多。
提醒一下,如果通过API进行调用时密码错误超过一定次数(似乎是5次,不太确定),账户会被锁定一定的时间。你可以通过上面说的获得xml文件的方式获得提示信息。
Good Luck
@Bronco
非常感谢!现在弄好了 :)
Gravity的作者从6390版本开始,屏蔽了API的plaintext认证方式,怎么解决?!
@小元
你从哪得到的这个消息?我的6390能正常工作啊~Authentication选的是”Proxy/Plaintext”。
@Bronco
我在opda上看到盖茨大大说的,然后试了gravity6390版,在add用户的时候没法选择plaintext啊。
@Bronco
我又google了一下,6390确实只能通过oauth登陆,很多人都开始用6375这个老版本,比如我。bronco兄你核实一下?
Could not connect to Twitter. Refresh the page or try again later.
点击”Sign in with Twitter”按钮时一直这样~请问怎么解决啊??
@小元
貌似正版的有plaintext方式~D版没有
不知以后会不会一直这样
@Bronco
Could not connect to Twitter. Refresh the page or try again later.
点击”Sign in with Twitter”按钮时一直这样~请问怎么解决啊??
换了hyperphp和byteact两个空间都是这样~
@小元
嗯,我的是正版的Gravity,有Proxy/Plaintext的,不知道D版是不是没有了。
@Sphinx
不如你试试2.2版的twip看看能不能连接~~
这个一般是因为主机空间把Twitter域名给屏蔽了。因为OAuth验证的关系,使用ip地址来代替域名是无效的,会自动跳转。目前我也没什么办法…..
悲剧。。 Sign in with Twitter 按钮
只能 输入密码。 没有输入账号的 地方。
dreamhost可以搭建支持ouath的api么?
@weather8620
你说的是跳转到Twitter之后?不应该啊~~仔细看一下使用说明,是不是哪里弄错了?
@Zhoong
可以啊~我的就是在dh上搭建的。
现在有没有在哪个freehost上成功搭建的呢?
Could not connect to Twitter. Refresh the page or try again later.
dreamhost 。。。难道也悲剧了?
我的空间不支持twip3,只支持twip2。怎么弄
可参考这篇文章http://4zai.net/137
请问你用的是什么空间啊?~我连支持twip2的都没找到
http://u.ntes.in/callback.php?oauth_token=0LqrQUyM2SGNzkb2zD6GnbKnqg0SuKuwKAf1M&oauth_verifier=SCCGK5DCfeKRjkA7qEoNKglY90VOps3osX82VANSP0
一点那个 Sign in with Twitter 就跳到这里来了。
都没有调用其 TWITTER 那个出来。
在浏览器里使用正常,可以用test看到推,但输入到客户端没反应。空间用的是http://4zai.net/137中作者写的那个。
望LS继续折腾后分享经验~俺现在头都晕鸟
@all
经验证原来oauth_config.php里的KEY和SECRET已经失效,请自行到twitter申请新的app并将对应的KEY和SECRET填入文件内。使用原来的KEY和SECRET将无法连接到Twitter,返回”Could not connect to Twitter.”
@weather8620
这个是因为你的浏览器里已经默认保存了twitter的登陆信息,你看到的输入密码的界面实际是从twitter返回之后输入api密码的地方。
@flyingkk
是twip3.0吗?确认输入客户端的地址、用户名、密码(是api密码)是否正确。
折腾好了。。但是发现twidroid 跟seesmic 都不支持oauth…..我折腾是为个啥啊
@kajisan
你还没明白twip3的工作原理。目前的情况是,twip3使用OAuth跟twitter交换数据,而使用Basic auth来跟客户端交换数据,所以对客户端来说,仍然是basic auth的方式。如果客户端支持并启用OAuth,例如Gravity,twip3是无法工作的。
那我通过web用username 跟api password 可以获得timeline
但twdroid 跟seesmic 均无法成功连接。。这又是什么错啊。。
现在就缺一个freehost可以通过access token……唉
已经成功搞定。。重新设置api密码为twitter密码后依然无法。。
仔细看配置。。然后发现是oauth的路径估计有些问题。。应该是需要个服务器路径。
于是ssh上去之后pwd了一下。拷贝路径过来。解决。。
Not Found
The requested URL /twip/oauth.php was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 PHP/5.3.2 Server at dwe126.melgurt.com Port 80
在授权界面点击Allow之后出现这个提示~怎么解决?
@Bronco
Bronco,目前的代码修改后是否可以用于byethost这样的免费空间呢?
用了OAuth后,还可以多个账户都通过这个方式中转么?还是只能一个人用这个twip api了?
@kajisan 可能是把gzip压缩启用了,关掉它
我建的几乎都成了,allow回来后输入自己密码无法显示最近的几天推,自己用客户端也不行。请问怎样解决,是空间的问题吗?我空间装twip2成。谢谢
我按照这个文档建好了,但是有一个问题:
1。当我从twidroid里面链接api的时候提示我twitter不能给我的账号授权
2。在通过web访问我的api的login.php的时候浏览器会弹出登录对话框,内容类似于“A username and password are being requested by http://myapihostserver. The site says: “Twip login””,这个时候无论输入推特账号密码还是api密码都无法登录,甚至输入我在空间注册的账号密码也不行。
但是访问index.php则可以显示最近的五个消息,同时尝试“/statuses/public_timeline.xml”也可以读取到正确的xml,请问一下博主,我这个是什么情况?谢谢了。
从twidroid里面出来的出错消息:could not authenticate you. Maybe your login information is incorrect or your account is locked after too many failed attempts to sign in. Please chillax for a few, then try again.
直接连接login.php弹出的对话框信息:Twip login上的 mytwiphoster:80 服务器要求提供用户名和密码。
这个坚决支持,学习。
救命
http://u.ntes.in/twip/index.php
谁帮我测试下。 为什么到了最后一步。 输入了两次 api 密码。 loadin。。 然后就failed
是不是开了oauth以后basicauth就没法用了?
199.71.215.14 – - [05/May/2010:02:17:36 -0700] “GET /statuses/friends_timeline.json?count=5 HTTP/1.1″ 404 505 “http://u.ntes.in/index.php” “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3″ |
悲剧的 404
希望能出个gae版本的。现在的免费php空间难找而且大部分都不支持curl
其实我想问twip2.2和3.0的区别是什么呢,同样是oauth呢~
@四仔
架构的改变吧~功能上似乎差不多。不过2.2有个安全问题,当A通过OAuth取得token存入服务器后,B有可能使用A的token来发送消息。这个在3.0里进行了修正,token是加密的,前提是空间要支持mcrypt库。
@tianchaoren
python和java都不是很熟,心有余而力不足诶~~不过似乎有基于java版的类似twip的东西。
@Roy
7月底吧记忆中,关闭之后basic auth无法从官方获取数据了。
@kh9n
既然能获得public_timeline,就表明至少OAuth的部分应该没什么问题了。可以考虑换个桌面版的客户端试试看。
@fanzheng
注意区分一下api密码和twitter密码。你也可以检查oauth目录看看有没有对应的.oauth文件生成。
@Roy
可以多人共用,每个人都使用自己的username和api密码来进行验证。
@@yueerfei
目前不能。
@Bronco
嗯,twip3.0应该还是比2.2好的。既然有3.0我就不用2.2的那个了。
顺便也在我那篇文章加了个link过来了。。
不少空间不支持3.0,这也是问题@四仔
多看了一下发现,只要我clear session,之后就无法获得public_timeline了。需要登录。而登录界面正如我描述的,始终无法登录,一直弹登录窗口。
我跟查了一下源代码。。发现在dorequest(){…}函数中,$this->username获得的是空,所以虽然我的.oauth文件存在,但是在执行
if( !file_exists( OAUTH_DIR.$this->username.’.oauth’ )) {
header(“HTTP/1.1 403 Forbidden”);
exit();
}
的时候会出错。
另外,我把twip放在根目录下”/”,在pre_request(){…}里面,这句话是不是有问题?
if(strlen($this->webroot) == 0){//use “/” as webroot
$this->request_api = strval(substr($_SERVER['REQUEST_URI'],1));
我觉得应该是
if(strlen($this->webroot) == 0){//use “/” as webroot
$this->request_api = strval(substr($_SERVER['REQUEST_URI'],0));
否则$this->request_api会获取失败。。
请指教。。。
不知道是不是我空间配置或者空间自身的问题。。我用的是http://x10hosting.com的免费空间。
@kh9n
原来那样写是对的,需要去掉第一个”/”。至于x10hosting,很遗憾,似乎他们家的主机的mod_rewrite有问题,之前我也尝试过,总是获取不到用户名和密码。在支持论坛上发了帖子也没人理……
好教程,要是再配个图就更棒啦!原来我一直没有建立一个OAuth的文件夹(这个文件夹建在不能被用户直接访问到的位置,即博主提到的public_html(www)目录的上一级),所以导致失败。另外在oauth_config.php这个文件的变量OAUTH_DIR的路径必须和OAuth的这个文件夹的路径一致。
@Bronco
谢谢回复。。再另外一个免费空间上搭好了。确实可以用。非常赞。谢谢你的工作以及分享。
@kh9n
请问你用的是什么免费空间啊?
我的都搭建成功了,最后的timeline也出现了,可是我把api地址键入gravity的时候出现了api上限,这是什么问题啊?
@Sphinx 我是在 http://www.host1free.com/ 上申请的免费空间。我在手机上面访问速度还可以接受。移动GPRS。
见鬼了。。这里会自动删除comments么。。还是因为我写了url进来?
@Sphinx 我用的是host1free提供的免费空间,有什么问题可以在推上问我 @kh9n
Gravity现在已经可以自动获得access token
用Gravity的用户不用担心7月的来临,哈哈
lz 你好。 你的 打包文件缺乏 .htacess 文件 赶紧补上吧。
cat .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
楼主 能不能抽空 改下代码 支持 140 自动截断?
请问现在支持gzip压缩 不?
@kh9n
被akismet认定为spam了…..
@Qing
嗯,Gravity还是很不错的,但只能在Symbian上用啊~
@weather8620
我的zip压缩包里有.htaccess啊~~140截断有空再改吧。
@jixi
twip一直都支持gzip压缩啊~只是貌似跟Gravity配合得不太好,原因未知…
@@granvals
估计是同一个IP上的twip太多了
@kh9n
谢了~已经搞定了,呵呵~
博主有gt什么的可以联系么?
我建的api在浏览器上一切正常,但是在手机上无法使用。我登陆ftp发现oauth那个目录是空的。不知道问题出在哪里。
@tianchaoren
检查一下oauth_dir的配置是否正确,对应文件夹是否具有写权限。
点击”Sign in with Twitter”之后出现设置密码的页面 点击保持后出现以下提示 请问怎么解决?
Warning: file_put_contents(/domains/hsgj01427.kuheo.com/hsgj01427.oauth) [function.file-put-contents]: failed to open stream: No such file or directory in /home/hsgj01/domains/hsgj01427.kuheo.com/public_html/savetoken.php on line 30
Warning: Cannot modify header information – headers already sent by (output started at /home/hsgj01/domains/hsgj01427.kuheo.com/public_html/savetoken.php:30) in /home/hsgj01/domains/hsgj01427.kuheo.com/public_html/savetoken.php on line 32
@三叶草
看起来似乎是oauth目录设置得不对,有些主机会把路径截断,所以你需要确实一下oauth文件夹的“可访问”路径,也就是通过php可以访问得到的路径。另外一点是可能权限设置得不对,最简单的方法是设置为777.
感谢你提供的程序和说明,我已经架设成功^^
twip3.0+gravity在开启压缩时会无法使用,你提供的程序也存在这个问题,可以参照这一ISSUE来解决,将twip.php第186行的header注释掉,如果认为妥当建议更新源代码。
@Diky
请问LS用的是哪个空间?付费的还是免费的?~
@Sphinx
付费空间…
@Diky
已经修正源代码,感谢!
@mytion
请问我的oauth目录一直是空的是什么原因啊?我放在上以及上一级目录了,config里面是不是填写 类似 /home/dning1/oauth 这样的啊?
我的现在在web页面可以访问到最新的5条推,但是电脑客户端无法登陆,gravity总是提示“api达到上限”,这是什么原因? 求楼主指导~~
对了,phpinfo显示 _SERVER["DOCUMENT_ROOT"]为/home/dning1/public_html 上一级目录的oauth文件夹权限已经设置为777了。。
@三叶草
我也在这步出现这些。
我用bluehost的共享主机,只有FTP,我自己无法访问到我域名文件夹的上级目录的,能不能把oauth文件夹放在twip文件夹的上一级目录呢?
@dning1
你在web页面点击”clean session”之后再点击”show your timeline”看看能不能看到推。因为如果oauth文件没有生成成功的话客户端是没办法用的。而网页是因为从twitter返回后token存在session里了。
@LUCYFOUR
理论上把oauth文件夹放在哪里都是可以的。推荐放在域名文件夹上一层主要是考虑安全性,让网页访问者无法获得oauth文件。
果然没法生成啊。。。是不是主机的缘故?我的是uhosting。。。
@dning1
oauth_config.php里oauth_dir要以”/”结尾。如果还是不行的话有可能是主机的问题了。uhosting没用过,不好说。
请教博主,我在一个空间上尝试搭建了一个,现在的状况是OAuth文件夹下成功写入了文件,也没有报错,但是最后测试Timeline的时候总显示Failed,问题可能出在哪儿呢?感谢~
呃,我在hoat1free搭建的rupai.net域名验证后输入API密码后显示:
这是什么原因呢?
而且返回后可以显示推,但还是没有oauth文件生成,oauth_dir目录是以 / 结尾的。。
同问!
@dning1
文件夹权限的问题。把oauth文件夹的权限设置为777。
@soho
@byelims
可以尝试直接在浏览器中输入“你的api地址”/statuses/public_timeline.xml,如果API正常,会返回xml格式的最新的推。如果问题出在 Twitter服务端,也会返回相应的错误信息。多次尝试通过API来获取数据并且验证失败的话,账户会被锁定一段时间的。
今天搭建成功啦,uhosting的主机,只改oauth_dir,key,secret,callback.php地址,建立oauth文件夹修改权限直接上传就行了~~~~
我之前把文件夹名改成 “t”,修改了twip和index两个文件汇总的目录,结果就不能保存oauth文件了,请问有办法让他处于“t”文件夹下吗?
不小心把oauth文件中的文件删除了,无论我怎么操作都再也保存不了那个文件 了,怎么办啦
使用gzip后gravity无法使用没显示内容但是有流量消耗。
请问 启用了”PRIVATE_API”选项 ,修改哪里开启?
@三叶草
config里的OAUTH_DIR改为/home/hsgj01/domains/hsgj01427.kuheo.com/oauth/ 路径
777权
@mytion
不好意思很才的问一下怎样“在oauth——config.php里面表示public_html(www)目录的上一级?”我已经在这一级建了oauth文件夹,777权限。可是不知道在oauth——dir后面怎么表示,谢谢帮助。
囧。用uhosting.org搭建的twip在网页段成功生成了token,但用在gravity上一直显示api到达上限。求帮助。
@Syringa
检查oauth文件夹里是否有.oauth文件,有的话可能是同一ip请求次数过多,可以等一段时间再试。
@darky
index.php里的”private_api”设为true,把自己的用户名放到”allowed_users”里。
@tianchaoren
有什么提示么?有些主机会打开全局gzip压缩,这个时候twip的”docompress”不能设为true。
@xxxx
既然能生成,在配置没更改的前提下肯定可以再次生成的。
没什么特别的提示,看起来一切正常。而且打开gzip只是在gravity里面不正常,在电脑端和手机端的twibble却可以正常使用。可是我很少听别人说打开gzip后gravity不能用。是dreamhost的合租空间。不打开gzip流量很大,打开了gzip后api又与gravity无缘:(
@tianchaoren
dreamhost是全局打开gzip的,twip把docompress设置false,Gravity把use zlib comp设为yes就行了。我用的也是dh的空间,这样设置可以用,数据已经压缩了。另外,gravity上如果有关于gzip的错误会提示网络错误-36。
“dreamhost是全局打开gzip的,twip把docompress设置false,Gravity把use zlib comp设为yes就行了。我用的也是dh的空间,这样设置可以用,数据已经压缩了。”
这个确实是这样。谢谢。
还有一个问题我一直想不通。我想使用ssl加密的api,但是代价太大(独立IP加SSL证书一年的花费很大)。而基于gae的appspot的api可以使用appspot自带的ssl加密。所以我修改基于appspot的api的代码指向,把twitter.com改成dreamhost上支持oauth的api地址但是却无法使用。
你能不能试试我这个想法是否可行,如果不能,有可能是什么原因呢?
PS:基于gae的api有几个,使用gtap代码简单易于修改. http://code.google.com/p/gtap/
@tianchaoren
在GAE上安装了个支持 oauth的API,安装方法: http://timewilltell.me/2010/05/gaes-api-methods-built-oauth.html 我的API地址 https://heyfanzhg.appspot.com/ 这个是 from 推神
打开首页出错
Warning: session_start() [function.session-start]: open(/tmp/sess_2fb2df2cf91131d50fa8f9f55eb7df89, O_RDWR) failed: Permission denied (13) in /home/XXX/public_html/twip3/twip.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/XXX/public_html/twip3/twip.php:25) in /home/XXX/public_html/twip3/twip.php on line 25
Welcome to Twip.
晕 刚看到
别把ff放上去,记得删掉 还有这条留言
@Bronco
test.php获取5推出错更好的排障方法是同时加载工作正常的api所获取的/statuses/public_timeline.xml和自己所获取的相同页面,然后比对一下看看有没有差异。
BTW,发现Godaddy的免费主机可以正常搭建奶瓶腿客户端,但注册页面验证码显示不出来。用twip 3能在指定目录正常生成.oauth文件,然后用客户端可以正常登录,但不显示新推也不能发推。通过刚刚的方法查看了一下,果然是输出的xml文件由于被godaddy插入广告代码使得xml出错导致。。FML
但不过还好twip还能用来直接按ID看推,算是发挥一点余热吧.. http://sharling.info/sharling
@Showfom
哦
@sharling
免费空间确实比较讨厌……
@Showfom
改掉了,话说你直接在推上@我不就好了…
@soho
空间对session支持有问题。收费主机的话提交给客服处理。
屏蔽了Twitter的免费虚拟主机可以使用自己的顶级域名A记录指向Twitter,这样就可以绕过屏蔽域名。已经在byethost的主机上实验成功。OAuth验证成功后弄个二级域名指向twitter就可以了。不过这样做之后就不能再继续验证OAuth,只能继续使用原来已经注册的Oauth。 #twip
http_code 401表示key和secret失效?请问这个怎么解决?
我想问问 000webhost 支持不支持twip3
@pipitu
更换key和secret。若app被锁联系twitter。
@blambin
空间支持基本的session、mod_rewrite就ok的吧~屏蔽了twitter也可以通过域名转向来搞定。
@blambin
看这里挺火爆的,我来凑个热闹,000webhost 好像不支持 .htaccess 的,搭了也没用,除非客户端支持非标准api url的。
原来不能用email登陆,让我昨天调试了半天…
对twitter的api没有研究
能够改变oauth文件的命名方式,使用登录方式而不是Screename来命名么?
@darasion
可以了已经 支持 .htaccess 的
byehost的主机不支持,早知道我就不浪费人家资源给申请了。为何楼主要加删除线???
nginx做的反向代理api在6月30号之后也会失效吗?
我用twip在自己的VPS(nginx的)上面做,老是failed……无奈了
如果反向代理还是可用的话那么就不准备折腾了……
老大,我发现访问“api地址/statuses/public_timeline.xml”地址的时候,返回的是404页面,这是咋回事呢?
@jukin
byehost可以通过使用域名A记录的方法来使用。具体可以去搜一下,在opda里有相关的教程。
@camus
反向代理应该是没什么问题的。
000webhost.com通过使用域名A记录的方法使用后,API密码保存,可是就是无法获取,郁闷.
找了一个免费的空间,感觉很棒,但是有广告代码阻碍tweets显示
请问有什么办法解决吗
同楼上,访问“api地址/statuses/public_timeline.xml”地址的时候,返回的是404页面
用的是nginx,是不是要配置什么呢
楼主,按照你说的已经架设好了,我的是付费空间。
oauth目录下的xxx.oauth也生成了,但是每次点击sign in with twitter 在Save your OAuth token页面 输入2次API密码,就返回到Welcome to Twip页面,最后一行报Failed! 错误。 能分析下大概问题出在哪里吗? 地址 http://is.gd/cNjK0
@minkaka
返回之后可以点击”clean session”之后再点击”show your timeline”看看,或者在地址栏输入”api地址/statuses/public_timeline.xml”看看结果。
@sun
nginx依照.htaccess来配置服务器。
@faint
广告代码需要自己写代码来去掉,且有被关闭账户的可能。
@minkaka
返回之后可以点击”clean session”之后再点击”show your timeline”看看,或者在地址栏输入”api地址/statuses/public_timeline.xml”看看结果。
————————————————————————–
点击 show your timeline 要我输入密码,究竟是什么用户名和密码啊,TWITTER帐户密码?前面设置的API密码?还是空间密码?FTp密码? ; twip目录下根本就没有/statuses/目录啊,更没有public_timeline.xml 文件~~~ 拜托帮忙看看。我在t上也给你留言了
@@minkaka
建议先仔细阅读相关的说明和教程。
我的问题是
gravity上除了搜索和趋势,都正常!
为什么搜索没法用
问个问题!6月30日后
如果自建具有安全验证OAuth的api+6375
应该还可以使用gravity吧?(也就是说twiter网站的改动不会对twip3与客户端的明码验证产生影响吧?)
还有原作者架设的服务器不是用twip3吗?
难道原作者的服务器可以两边(一边是twitter,另一边是客户端gravity)都支持验证OAuth?
还有就是,目前最新的破解版本,没有输入自建api的位置了,通过什么办法可以继续使用自建api
这几个问题困扰我很久了!望回答,谢谢!
@Bronco
能不能直接给个链接,我隐藏路径转发然后还是显示连接不到twitter
打开twip主页后出现
请问是不是主机的问题?
你好,博主,请教下. 我是在我自己的vps上搭建的twip, 点击Sign in Twitter 验证成功后,跳转到输入token access 密码,输入完跳转回主页,没有看到time_line 出现,只有一个 Fail , 但是保存oauth 信息的文件也已经正常的生成了。
还有我在api后面加上statuses/public_timeline.xml 出现404错误 。
请问我改怎么办呢?
@刘德华
6375版的可以用的,Gravity的作者用的应该不是twip而是他自己写的代理,因为只提供给Gravity自己用,所以接口可以随意设计。新版的Gravity不支持自定义api,要么等新版,要么降级。实在想用新版的可以建立一个statusnet类型的账号,只是这种方式不支持官方RT以及list,也无法推图。
@saraka
具体地址我这里也没有……
@dofine
看错误信息应该是权限设置的问题。
@kun
404错误的话检查webroot是否设置正确,.htaccess是否存在且正确。非Apache服务器的话需要自己实现rewrite。
感谢。。已经解决了,是apache 忘了加载mod_rewrite 模块了。
谢了!继续twitter
这个真是不容易啊,复杂
@Bronco 你好,我在dh的空间(api.8cmblue.tk)上搭建了Twip3.1,oauth文件夹里也生成了.oauth文件了,权限也设置为了777,但就是一直显示“Fail”。含泪求指教。
搞定了,用二级域名直接访问API时,webroot需要设置为“/”。
啊哦!这个我抽时间试试!
悲剧,最后一步输入API密码后,提示
Warning: file_put_contents(/home/user/oauth/gaochuyu.oauth) [function.file-put-contents]: failed to open stream: No such file or directory in /home/content/g/a/o/gaochuyu/html/t/api/savetoken.php on line 30
Warning: Cannot modify header information – headers already sent by (output started at /home/content/g/a/o/gaochuyu/html/t/api/savetoken.php:30) in /home/content/g/a/o/gaochuyu/html/t/api/savetoken.php on line 32
求解
通过web访问已经可以得到tweet了,而且connection页面也有授权了,但是在twhirl中用api的方式却无法操作。btw:twhirl中api访问的形式是 用户名为name@apiaddress的形式l.ca帐号是不是因为这个问题?
我到倒数第二步的时候,没有出现到官网的认证,而是直接跳转到设置密码页面了,这是怎么回事?而且这里设置密码完成之后跳转回Twip页面,每次都显示Failed,晕死~折腾一宿了还是搞不定,太郁闷了
哈哈,看完文章,看到域名才知道是你~~
@良柄
没有官网验证是因为之前曾经登陆过,并且做过了允许操作。至于显示Fail,先看有没有oauth文件,再通过网址的形式检查api是否工作正常。具体方法之前的评论中有。
@Jutoy
嘿嘿~~
博主,好久没更新了
博主,N久没更新了哦!~~
博主好久没更新了吧!~~~~
好多人哦……博主去哪了呢
博主人气好旺哦,你还不快带那更新啊。。。
非常好的博客 过来跟博主学习了
我记得我见过这个主题
很不错的主题 银河的
我说难怪这么多人,原来已经快一年了的文章呀。博主你看看这么多人来支持你,你也不出来……
[...] http://heybronco.net/tech/twitter/the-twip-support-oauth/ [...]
[...] http://heybronco.net/tech/twitter/the-twip-support-oauth/ 本人淘宝店提供的DREAMHOST [...]
[...] 支持OAuth的Twip – 信马由缰 (tags: OAuth TwitterTools) [...]
[...] 凡是GFW禁止的,我就有尝试的兴趣。所以最近就一直尝试搭建自己的twitter api proxy。proxy程序有基于Google App Engine的birdnest,基于PHP的twip。 [...]
[...] http://heybronco.net/tech/twitter/the-twip-support-oauth/ [...]
[...] 五月 26, 2010 作者为 xijie 作者:Bronco 来源:http://heybronco.net/tech/twitter/the-twip-support-oauth/ [...]
[...] 支持OAuth的Twip [...]
[...] address of this article is http://heybronco.net/tech/twitter/the-twip-support-oauth/.When you got this here have more than 30 comments. Why not come to check it [...]