手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:pecl

Oauth二三事

这两天在做微博同步,于是对于oauth又重新开始折腾了。其实在之前我也做过类似的笔记,例如这个 关于oauth的几篇文章 ,于是在做这个同步的时候也参考了这些其中的一两篇,比如老王的基于PECL OAuth打造微博应用,但由于我不想加载pecl的oauth库,所以就不能使用了。
于是我就根据官方的SDK进行了处理,但由于需要同时支持两个或更多微博,结果就造成了oauth类的冲突了。而事实上经过测试,还不能加载一个屏蔽一个,因为有些微博对oauth类中的部分做了修改。于是最后我采用了namespace来解决了这个问题。
因为这次我是把weibo的类库做了独立处理,但由于不是每一台服务器都支持5.3的namespace,也在犹豫是不是要重新修正oauth类,但这样之后,官方的SDK我就不能覆盖性的更新了。真纠结呀。
hightman也在重写类似的东西,大家都在重复造轮子,可是怎么办呢?官方万一更新SDK,添加了新接口,我们怎么办,虽然会有一些接口的URL提供我们调用,但总归是直接使用会更方便啦。随便说说而已,目前已经解决,实在吐血的情况下那我就是干脆自己学着新浪他们一样也提供接口。哈哈,做点无耻的事情。。。

Tags: oauth, namespace, weibo, pecl

关于oauth的几篇文章

本文只是一个收集的链接,关于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代码
  1. <?php  
  2. include('define.php');  
  3. try {  
  4.     $oauth = new OAuth(OAUTH_KEY, OAUTH_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);  
  5.     $oauth->enableDebug();  
  6.     // 很重要!!!在 OAuth 标准里是没有规定 nonce 的长度的,但是 QQ 对 nonce 的长度做了要求——32 字节长。如果不设置一下,会返回 400 错误。我为此纠结了一天。  
  7.     $oauth->setNonce(md5(rand()));  
  8.     // CALLBACK 一定要设置,OAuth 扩展的文档上是没设置的,但是 QQ 这里不设会报错  
  9.     $requestTokenInfo = $oauth->getRequestToken(REQUEST_TOKEN, CALLBACK);  
  10.     $_SESSION['oauth_token_secret'] = $requestTokenInfo['oauth_token_secret'];  
  11.     // header("Location: ……") 亦可  
  12.     echo "<p><a href='" . AUTHORIZE . "?oauth_token=" . $requestTokenInfo['oauth_token'] . "'>authorize</a></p>";  
  13. } catch (OAuthException $e) {  
  14.     var_dump($e);  
  15. }  
  16.   
  17. callback.php  
  18.   
  19. <?php  
  20. include('define.php');  
  21. try {  
  22.     $oauth = new OAuth(OAUTH_KEY, OAUTH_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);  
  23.     $oauth->enableDebug();  
  24.     // 很重要!!!如果不设置一下,会返回 401 错误。  
  25.     $oauth->setNonce(md5(rand()));  
  26.     $oauth->setToken($_GET['oauth_token'], $_SESSION['oauth_token_secret']);  
  27.     $accessTokenInfo = $oauth->getAccessToken(ACCESS_TOKEN, null, $_GET['oauth_verifier']);  
  28.     $_SESSION['access_token'] = $accessTokenInfo['oauth_token'];  
  29.     $_SESSION['access_secret'] = $accessTokenInfo['oauth_token_secret'];  
  30.     header('Location: room.php');  
  31. } catch (OAuthException $e) {  
  32.     var_dump($e);  
  33. }  
7、这是针对新浪微博的OAuth协议分析一

 

8、对新浪微博的OAUTH开发,居然还有一个总结:新浪微博OAuth认证总结

9、又是老王发的牢骚:OAuth那些事儿

好吧,就先列出这么多,真要查出oauth之类的东西,google随便一下就有很多,我贴出来的地址,都是我订阅的一些RSS的地址,也算是做一个集中罢了。

 

Tags: php, qq, sina, oauth, pecl