1、现在玩微博的人越来越多了,而关于微博的第三方应用开发也越来越多,自己在偶然间开始接触了新浪微博 API 开发,新浪微博 API 开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http:/,它里面有很全面的新浪微博开发的资料,包括开发者的使用和介绍,各种语言的API 函数介绍文档,SDK 等多种资料。自己在开发和学习的过程中,感觉虽然没有太大难度,但还是有一些问题是需要我们注意的,今天就我在开发和学习的过程中,简单的对利用 PHP 进行新浪微博 API 开发的内容进行一个整理和说明,新浪微博 API 开发前的准备工作首先到新浪微博开放平台下载基于 PHP 的 SDK 开发包,下载地址
2、是:http:/ demo 演示程序,我们可以参考其样例程序进行编写。新浪微博 API 开发最重要的用户授权过程其实在开发过程中很多的问题都是集中在用户授权这个阶段,我开发的第三方应用,使用的是 OAuth 授权,关于 OAuth 授权的流程在新浪微博开放平台里有很清晰完整的介绍,我们可以到http:/ 去查看,我这里从实例开发的角度进行介绍和说明。1.首先获取未授权的 Request Token$o = new WeiboOAuth( WB_AKEY , WB_SKEY );$keys = $o-getRequestToken();/echo($keysoauth_token. : .$ke
3、ysoauth_token_secret);我们需要在新浪微博开放平台中注册一个帐号,或直接使用我们的新浪微博帐号登录,进入我的应用,然后按照提示创建属于我们自己的第三方应用,创建完成之后我们可以得到两个授权的 App Key 和 App Secret 值,这两个值就是我们开发应用的关键。得到授权值后,我们就可以利用上面的代码获得未授权的 Request Token 值了,它们会保存在$key 数组变量中。2.然后请求用户授权 Token$_SESSIONkeys = $keys;$aurl = $o-getAuthorizeURL( $keysoauth_token ,false , htt
4、p:/localhost/callback.php);得到未授权的 Request Token 值后,我们就利用上面的代码可以开始准备去新浪微博授权页面进行授权,$aurl 就是授权链接页面,我们得到$aurl 后就可以利用 header()直接跳转到该授权页面,然后用户输入新浪微博帐号和密码进行授权,授权完成后,自动跳回你在最后一个参数里面设置的回调页面:http:/localhost/callback.php,该链接你可以设置为上一个页面,这样授权完成之后就会自动又跳转回去了。需要注意的是设置 session 的 keys 的值是必须的,它在下面获取到授权的 Access Token 中是
5、需要用到的。很多的朋友可能会参考其开放平台上面的说明来进行授权时,可发现总是出错,一般都是这个问题,你并未设置 session 的 keys 值,在下面当然取不到 Access Token 的值了,这个一定要记住了。3.最后得到用户授权的 Access Token$o = new WeiboOAuth( WB_AKEY ,WB_SKEY ,$_SESSIONkeysoauth_token ,$_SESSIONkeysoauth_token_secret );$last_key = $o-getAccessToken( $_REQUESToauth_verifier ) ;echo($last_
6、keyoauth_token);上面的代码就最终获得了用户授权的 Access Token,共两个值,它们保存在 $last_key 数组变量里面,我们也可以看到,后面的两个参数就是前面我们设置的 session 值。到此就基本完成了,这就是新浪微博用户授权的一个完整的过程。授权完成后的工作在授权完成之后,我们就可以开始调用新浪微博提供的各类 API 函数接口进行实际应用的开发了,在这里我就获取最新微博记录这个接口进行一个简单说明,其他都类似。获取最新新浪微博信息的 API 接口函数是:public_timeline() ,样例代码看下面:/获取前 20 条最新更新的公共微博消息$c = ne
7、w WeiboClient( WB_AKEY ,WB_SKEY ,$oauth_token ,$oauth_token_secret );$msg = $c-public_timeline();if ($msg = false | $msg = null)echo “Error occured“;return false;if (isset($msgerror_code) Error: .$msgerror );return false;print_r($msg);通常我们在得到用户授权的 Access Token 值之后,就把它们保存在我们的用户表中,与我们的应用中的帐号进行对应,之后我们在调用新浪微博各 api 接口时就不用每次都去认证了。上面的代码很简单,实例化 WeiboClient 对象,然后直接调用接口函数 public_timeline 就可以得到返回的信息,如果没有错误的话。通常新浪微博 api 接口返回的数据格式一般为 Json 格式或 xml 格式,而我们在此是用 php 进行开发,则使用 Json 格式的数据就有先天的优势,如果返回 Json 格式数据的话,直接使用 php 函数 json_decode()就可以转换为 php 常用的 array 数组格式了。文章来源:http:/www.kki.cc