OAuth 1.0a与1.0协议的改进…
上次我说了一下 OAuth协议 ..
只是用例子举例了下..但是没有详细说关于协议的事情..
今天我就来介绍一下1.0a与1.0的区别与改进..
前提是你已经去看过协议..对协议有个简单的认识了..
1.0a的改进主要有以下几点:
1.oauth_callback参数放到了请求Request Token中..在authorize时不再接受callback参数.同时.在服务端Request Token返回参数的时候.也增加了oauth_callback_confirmed参数.其值必须为true
在1.0的时候.我们如果需要规定一个callback地址.我们需要在请求authorize时带入callback参数.然后用于用户授权后返回.
在1.0a中.这个oauth_callback的参数变为必须参数.并且该地址必须放到第一步请求Request Token中.同时作为base_string的一个参数.如果第三方应用的callback地址不存在或者是其他的不可能有callback地址的应用(比如桌面应用).则此参数必须为[oob](中括号中的内容,区分大小写).如果服务端接收后.需要加入一个oauth_callback_confirmed参数.其值必须为[true](中括号中的内容).
2.授权结束后.增加oauth_verifier参数.
深入理解OAuth与豆瓣OAuth test
OAuth从出生似乎得到了太多业界的关照..几大被墙网站都有OAuth验证API..
今天在群里聊天.有人问我:国内除了豆瓣人人新浪微博.还有哪个提供api了?
我一时语塞..为国内的环境感到一丝凄凉..
扯远了..我们今天就来分析一下OAuth..怎么来用OAuth.
写这篇文章的原因就是我学习OAuth协议的时候..搜索到一些文章..都是出自一个叫[OAuth开发文档.docx]的文档中的..
比较笼统..并且不容易理解..
所以我想我有必要用我自己的话来描述一下OAuth协议.
为了更好的解释.我们就用豆瓣来举例吧.
一个用户A在豆瓣上注册了一个账号. 登录进去后他可以进行一些动作.比如发布广播等.
那么好.现在有个网站B..想让A在我的网站上发表一个广播..
但是有个问题..网站B对于用户A来说是不可靠的..用户A不想把自己的账号密码放到网站B上..
另外.网站B对于豆瓣来说也是不可靠的..豆瓣不知道网站B是不是真正的用户A.
为了解决这个问题..这三个人(豆瓣/用户A/网站B)就坐一起开了个小会..
会议的结果就是OAuth协议.
这个协议为了安全看起来是有点复杂的..下面我就简单的说下步骤..我有些比喻是不恰当的.只是让大家理解步骤而已.
大的步骤来说有三步.
在这些步骤之前..网站B得去豆瓣申请一个信物1(oauth_consumer_key)和一把钥匙1(oauth_consumer_secret)(钥匙很多.这个钥匙叫做钥匙1)..算是两人见面认识一下..然后网站B再去拜访豆瓣.豆瓣可以认识说:哦.这不是B吗?
百路推免费短网址服务..首创”收藏夹获取短网址”..
bai.lu是一个特殊的短网址服务,因为她提供了特殊的“收藏夹短网址”方式,大大简化了您获取短网址的步骤。
右键下面的超链接,选择“添加到收藏夹“,然后在你正在浏览网页的时候打开收藏夹,点击”转换为百路短网址“即可。
当然.,您也可以直接点击下面的超链接进行体验!
转换为百路短网址
jQuery中getJSON跨域原理详解
前几天我再开发一个叫 河蟹工具条 的时候,其中有个功能就是获取本页面的短网址。
这个想法是好的,可是在我付诸于行动的时候,发现这个需要跨域。
起初我的想法就是,跨域的最简单的方法就是增加一个script标签,因为script标签是允许跨域的。
但是问题又来了,对方的API返回的是个json对象,用script标签只能执行,却不能获取到里面的东西,也就是说返回的东西是不可控的。
随后我就想到了jQuery中的getJSON的方法,学习了一下,没想到里面的文章这么大。
jQuery非常聪明,他也意识到只靠script请求是无法接受到返回的东西的,所以他就设计了一个全局的callback函数,发送请求的时候把这个callback函数也传进去。
服务器判断是否有这个callback函数,如果没有就返回一个对象,如果有就返回一个函数名(对象)。
我们可以通过下面这个地址来看一下
Web辅助工具条(原名:河蟹工具条CrabBar)0.1发布
什么是Web辅助工具条
Web辅助工具条(原名:河蟹工具条CrabBar)可以使你在任何一个网页上面输入的文字变成其他的代码,比如菊花文、短网址等。
Web辅助工具条可以工作在IE系列或者FireFox浏览器中,作者已经在IE6(有BUG待修复)、IE7、IE8和FireFox3.5中进行测试。
经过测试.Web辅助工具条可以工作在utf-8 gbk gb2312等编码的网站中.
如何使用Web辅助工具条
使用Web辅助工具条非常简单方便!比如你正在浏览我的博客 http://www.skiyo.cn/ 中的某篇文章,并且你想对其进行评论,这时候请在地址栏中输入以下代码:
1 | javascript:void((function(){var e=document.createElement('script');e.setAttribute('src','http://crabbar.googlecode.com/svn/trunk/crabbar.js');document.body.appendChild(e);})()) |
稍等3秒左右,等待工具条加载完毕后,会在你浏览器中正中央出现Web辅助工具条。这时候你就可以在我的博客中的评论框中进行评论,然后选中你想要改变的文字,并且点击工具条上的“菊花文”,这些文字就变成菊花文了。
短网址服务是将你当前所看网页的URL转换为短网址.
下面是试用: read more
goo.gl URL Shortener for WordPress
wp-goo.gl是一个可以使你的文章或评论中的链接转换为goo.gl短网址的一个WordPress插件。在文章中使用[goo.gl="名字"]链接[/goo.gl] 或者 [goo.gl]链接[/goo.gl] 会自动解析为goo.gl短网址,在评论中你不需要输入这些特定的标签,wp-goo.gl会自动将其转换为短网址。由于需要发出请求,所以你的服务器上必须开启cURL扩展!注意:这个插件将会永久性的更改你输入的链接!
wp-goo.gl allows you to publish links in your posts or comments using goo.gl short URL service. With [goo.gl="name"]link[/goo.gl] or [goo.gl]link[/goo.gl] in your posts. In comments, you donot have to write such special codes. wp-goo.gl will change the links automatically. The cURL functions must be available on your server. WARNING: This plug-in will permanently change your input link!
使用方法:
1.将wp-goo.gl目录传到你的wp-content\plugins下。
2.在后台开启wp-goo.gl。
3.发布文章的时候加入 [goo.gl="名字"]链接[/goo.gl] 或者 [goo.gl]链接[/goo.gl] 会自动解析为goo.gl短网址。
4.你可以在设置-wp-goo.gl中进行文章或者评论的设置!
== Installation ==
1. Upload `googl-url-shortener-for-wordpress` to the `/wp-content/plugins/` directory
2. Activate the plugin through the ‘Plugins’ menu in WordPress
3. Use [goo.gl="name"]link[/goo.gl] or [goo.gl]link[/goo.gl] in your posts.
请大家进行测试 如果有问题了直接给我留言或者发邮件 admin@skiyo.cn
If you have any questions, please email to me. admin@skiyo.cn
下载:
Google短网址(goo.gl)服务类
是根据goo.gl URL Shortener的插件修改成PHP版本的..
不要问我有什么用…= =||
例子:
1 2 3 | include('GoogleShorter.class.php'); $g = new GoogleShorter(); echo $g->getURL('http://www.skiyo.cn/'); |
下步打算开发一个wp的插件 这样你在发表文章和评论的时候发表的网址就可以自动变成短网址了:)
下载地址:
TinyURL设计方案
现在貌似TinyURL很火爆,也逐渐成为一种流行趋势。
对应于PHP版本的TinyURL也有一些算法,其实本质上来说是一种hash。
除此之外,还有另外一种TinyURL方案,类似于http://img.ly。
其实这种设计是最简单的,没有使用hash,而是递增,这种的好处就是数据库可以无限扩展,并且不会重复。
我们可以想想一下,我们只用大小写字母来表示,如果三位的话,就可以存储52*52*52=140608的URL,如果是4位的话就成了52*52*52*52=7311616,这个数量是几何级增长,并且搜索速度非常快。
PS:如果你觉得这不够用的话,你还可以把数字加进去:)
我刚才测试了下,我新建了一个表:
1 2 3 4 5 6 7 | CREATE TABLE IF NOT EXISTS `url` ( `id` int(11) NOT NULL auto_increment, `tiny` char(10) character set utf8 collate utf8_bin NOT NULL default '', `url` text NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `tiny` (`tiny`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; |
注:使用utf8_bin是为了区分大小写。
然后我往表中添加了100w条数据,下面是我的算法,非常简单,还可以再优化:
PHPer的历练
身为一名中级PHPer菜鸟..无聊了就爱在各个PHP论坛瞎转.看到了好多PHP初学者都问到了很多相同的问题.而且我学PHP的时候也都遇到过.为了让PHP初学者少走一些弯路.所以突然神经恍惚.决定写下此文章.仅供PHP初学者参考.如有错误.还望指出.不甚感激.
PHP其实是一种很简单易学的语言.如果要精通PHP多则三年.少则一年就足够了.但是为什么三年之后我们照样是菜鸟?
不知道从什么开始.学习PHP我们不得不学习数据库.学习架构.学习面向对象.学习前端.学习linux.学习协议甚至美工等直接导致了现在PHPer都是最累的一种程序员.
最累就不算什么了.往往PHP会被认为是下等的程序.拿着最低级的工资.却要掌握web方面几乎全部的知识.这实在是不公平.
可喜的是 我们逐渐在国内看到了转变.国内越来越多的公司从Java或者C#等转到了PHP.所以各位PHPer一定要有自己的梦想.你们都会很牛B的.请坚信.
扯远了.回到我要说的重点上.下面几个问题包含着我遇到的问题.也许我说的不一定对或者你不一定同意我的看法.十分愿意接受你的意见.总之我们只是想让PHPer都雄起:-)
1.编码的问题
这不光是PHP..只要是程序上.就会遇到.至少我和我身边的人都遇到了.而且在Web方面.往往编码问题更是非常难解决.非常难调试.有时候程序出了莫名其妙的问题,很难想到是编码出了问题等等.
这些问题总是困扰着我们.所以我建议PHP初学者.一定要编码统一.并且强烈建议统一为UTF-8.中文不建议使用GBK或者GB2312等.因为在AJAX中传输的时候是不认识这种编码的.
如果要统一编码,就要在编码可能出现的任何地方注意一下.
分类目录
- ActionScript (2)
- CSS (25)
- Java (3)
- JavaScript (41)
- PHP (108)
- 心情杂谈 (34)
- 收集整理 (77)
- 本站原创 (58)
最近文章
- [演讲稿]OAuth1.0协议
- 在sae中利用SaeFetchurl进行豆瓣的OAuth授权
- OAuth 1.0a与1.0协议的改进…
- 深入理解OAuth与豆瓣OAuth test
- include_path+__autoload与数组+__autoload的比较
- 将google ssl设置为IE8的默认搜索引擎..
- 我们来做一个会呼吸的菜单吧!!
- 在编译php-fpm0.6的时候需要注意的一些问题
- 使用PHP将大文件导入到数据库中..
- 关于用PHP调用WebService中参数为complexType的问题
- 神奇的两次按位非运算符
- 百路推免费短网址服务..首创”收藏夹获取短网址”..
- 哥学社正式上线..
- jQuery中getJSON跨域原理详解
- Web辅助工具条(原名:河蟹工具条CrabBar)0.1发布
近期评论
- Gonten 在 在sae中利用SaeFetchurl进行豆瓣的OAuth授权 上的评论
- Amaranth 在 [演讲稿]OAuth1.0协议 上的评论
- 胖子 在 [演讲稿]OAuth1.0协议 上的评论
- 老飞的小窝 在 jQuery中getJSON跨域原理详解 上的评论
- Jackie.Hamos 在 将google ssl设置为IE8的默认搜索引擎.. 上的评论
- Elmer Zhang 在 在sae中利用SaeFetchurl进行豆瓣的OAuth授权 上的评论
- 茶叶蛋 在 一个PHP+AJAX留言板的完整例子.非常简单! 上的评论
- 9527 在 我们为什么要抛弃模板引擎?? 上的评论
- hikurasai 在 Flash TagCloud中文版. 上的评论
- lx 在 PHP上传进度条深度解析 上的评论
文章归档
- 2010 年九月 (1)
- 2010 年八月 (4)
- 2010 年七月 (3)
- 2010 年六月 (4)
- 2010 年五月 (2)
- 2010 年四月 (9)
- 2010 年三月 (12)
- 2010 年二月 (1)
- 2010 年一月 (3)
- 2009 年十二月 (2)
- 2009 年十一月 (3)
- 2009 年十月 (3)
- 2009 年九月 (5)
- 2009 年八月 (4)
- 2009 年七月 (6)
- 2009 年六月 (8)
- 2009 年五月 (8)
- 2009 年四月 (16)
- 2009 年三月 (19)
- 2009 年二月 (22)
- 2009 年一月 (20)
- 2008 年十二月 (38)
- 2008 年十一月 (22)
- 2008 年十月 (7)
- 2008 年九月 (3)
- 2008 年八月 (24)

Jessica
