这两天在做微博同步,于是对于oauth又重新开始折腾了。其实在之前我也做过类似的笔记,例如这个 关于oauth的几篇文章 ,于是在做这个同步的时候也参考了这些其中的一两篇,比如老王的基于PECL OAuth打造微博应用,但由于我不想加载pecl的oauth库,所以就不能使用了。
于是我就根据官方的SDK进行了处理,但由于需要同时支持两个或更多微博,结果就造成了oauth类的冲突了。而事实上经过测试,还不能加载一个屏蔽一个,因为有些微博对oauth类中的部分做了修改。于是最后我采用了namespace来解决了这个问题。
因为这次我是把weibo的类库做了独立处理,但由于不是每一台服务器都支持5.3的namespace,也在犹豫是不是要重新修正oauth类,但这样之后,官方的SDK我就不能覆盖性的更新了。真纠结呀。
hightman也在重写类似的东西,大家都在重复造轮子,可是怎么办呢?官方万一更新SDK,添加了新接口,我们怎么办,虽然会有一些接口的URL提供我们调用,但总归是直接使用会更方便啦。随便说说而已,目前已经解决,实在吐血的情况下那我就是干脆自己学着新浪他们一样也提供接口。哈哈,做点无耻的事情。。。
本文只是一个收集的链接,关于oauth,可以去看一下wiki百科,对于PHP的oauth支持,可以看一下手册
国内很早就有不少网站支持oauth,只是更多的网站都没有做出此类开放的功能。不过,疯狂的时候来的总是那么突然(这让我想起在单位的年夜饭上,刚吃了一小时,突然副总说了一句,快乐的时光总是短暂的)。国内对Oauth的支持也就突然间的多了起来,可能,最让人记的清楚的还是新浪。但当时关于oauth的文章还不是特别多,只是在QQ开放oauth后,突然间文章就多了很多,理由是,QQ所支持的oauth协议居然是非标的。。。。
好吧,让我们看看其他人是怎么说的:
1、使用QOAuth来进行新浪/腾讯微博验证(一)
2、老王的:基于PECL OAuth打造微博应用
3、android下的:android开发我的新浪微博客户端-OAuth篇(2.1)
4、腾讯微博开放平台的PECL的OAuth封装
5、腾讯微博开放平台练手:微博擂台
6、使用 PECL 的 OAuth 库访问 QQ 微博 API
其中4、5、6都是mikespook写的,他说,QQ 微博的API里有点重要的事情,并列出来了。看例子:
PHP代码
- <?php
- include('define.php');
- try {
- $oauth = new OAuth(OAUTH_KEY, OAUTH_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
- $oauth->enableDebug();
-
- $oauth->setNonce(md5(rand()));
-
- $requestTokenInfo = $oauth->getRequestToken(REQUEST_TOKEN, CALLBACK);
- $_SESSION['oauth_token_secret'] = $requestTokenInfo['oauth_token_secret'];
-
- echo "<p><a href='" . AUTHORIZE . "?oauth_token=" . $requestTokenInfo['oauth_token'] . "'>authorize</a></p>";
- } catch (OAuthException $e) {
- var_dump($e);
- }
-
- callback.php
-
- <?php
- include('define.php');
- try {
- $oauth = new OAuth(OAUTH_KEY, OAUTH_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
- $oauth->enableDebug();
-
- $oauth->setNonce(md5(rand()));
- $oauth->setToken($_GET['oauth_token'], $_SESSION['oauth_token_secret']);
- $accessTokenInfo = $oauth->getAccessToken(ACCESS_TOKEN, null, $_GET['oauth_verifier']);
- $_SESSION['access_token'] = $accessTokenInfo['oauth_token'];
- $_SESSION['access_secret'] = $accessTokenInfo['oauth_token_secret'];
- header('Location: room.php');
- } catch (OAuthException $e) {
- var_dump($e);
- }
7、这是针对新浪微博的
OAuth协议分析一
8、对新浪微博的OAUTH开发,居然还有一个总结:新浪微博OAuth认证总结
9、又是老王发的牢骚:OAuth那些事儿
好吧,就先列出这么多,真要查出oauth之类的东西,google随便一下就有很多,我贴出来的地址,都是我订阅的一些RSS的地址,也算是做一个集中罢了。