新浪微博API开发简介之用户授权(PHP基础篇)_PHP
新浪微博
现在玩微博的人越来越多了,而关于微博的第三方应用开发也越来越多,自己在偶然间开始接触了新浪微博API开发,新浪微博API开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http://open.weibo.com,它里面有很全面的新浪微博开发的资料,包括开发者的使用和介绍,各种语言的API函数介绍文档,SDK等多种资料。自己在开发和学习的过程中,感觉虽然没有太大难度,但还是有一些问题是需要我们注意的,今天就我在开发和学习的过程中,简单的对利用PHP进行新浪微博API开发的内容进行一个整理和说明,
新浪微博API开发前的准备工作
首先到新浪微博开放平台下载基于PHP的SDK开发包,下载地址是:http://code.google.com/p/libweibo/downloads/detail?name=weibo-oauth-class-with-image-avatar-06-29.zip
下载完成后放到自己的开发环境中并解压,在其中也包含了demo演示程序,我们可以参考其样例程序进行编写。
新浪微博API开发最重要的用户授权过程
其实在开发过程中很多的问题都是集中在用户授权这个阶段,我开发的第三方应用,使用的是OAuth授权,关于OAuth授权的流程在新浪微博开放平台里有很清晰完整的介绍,我们可以到http://open.weibo.com/wiki/Oauth去查看,我这里从实例开发的角度进行介绍和说明。
1.首先获取未授权的Request Token
复制代码 代码如下:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);
我们需要在新浪微博开放平台中注册一个帐号,或直接使用我们的新浪微博帐号登录,进入我的应用,然后按照提示创建属于我们自己的第三方应用,创建完成之后我们可以得到两个授权的App Key和App Secret值,这两个值就是我们开发应用的关键。
得到授权值后,我们就可以利用上面的代码获得未授权的Request Token值了,它们会保存在$key数组变量中。
2.然后请求用户授权Token
复制代码 代码如下:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/callback.php');
得到未授权的Request Token值后,我们就利用上面的代码可以开始准备去新浪微博授权页面进行授权,$aurl就是授权链接页面,我们得到$aurl后就可以利用header()直接跳转到该授权页面,然后用户输入新浪微博帐号和密码进行授权,授权完成后,自动跳回你在最后一个参数里面设置的回调页面:http://localhost/callback.php,该链接你可以设置为上一个页面,这样授权完成之后就会自动又跳转回去了。
需要注意的是设置session的keys的值是必须的,它在下面获取到授权的Access Token中是需要用到的。很多的朋友可能会参考其开放平台上面的说明来进行授权时,可发现总是出错,一般都是这个问题,你并未设置session的keys值,在下面当然取不到Access Token的值了,这个一定要记住了。
3.最后得到用户授权的Access Token
复制代码 代码如下:
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
echo($last_key['oauth_token']);
上面的代码就最终获得了用户授权的Access Token,共两个值,它们保存在$last_key数组变量里面,我们也可以看到,后面的两个参数就是前面我们设置的session值。到此就基本完成了,这就是新浪微博用户授权的一个完整的过程。
授权完成后的工作
在授权完成之后,我们就可以开始调用新浪微博提供的各类API函数接口进行实际应用的开发了,在这里我就获取最新微博记录这个接口进行一个简单说明,其他都类似。
获取最新新浪微博信息的API接口函数是:public_timeline(),样例代码看下面:
复制代码 代码如下:
//获取前20条最新更新的公共微博消息
$c = new 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($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; Error: '.$msg['error'] );
return false;
}
print_r($msg);
通常我们在得到用户授权的Access Token值之后,就把它们保存在我们的用户表中,与我们的应用中的帐号进行对应,之后我们在调用新浪微博各api接口时就不用每次都去认证了。
上面的代码很简单,实例化WeiboClient对象,然后直接调用接口函数public_timeline就可以得到返回的信息,如果没有错误的话。通常新浪微博api接口返回的数据格式一般为Json格式或xml格式,而我们在此是用php进行开发,则使用Json格式的数据就有先天的优势,如果返回Json格式数据的话,直接使用php函数json_decode()就可以转换为php常用的array数组格式了。
来源:红心草博客
原文地址:http://www.hongxincao.com/archives/579.html

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

隨著網路應用的不斷發展和變化,處理並行和非同步請求已經成為PHP後端API開發中的一個重要主題。在傳統的PHP應用程式中,請求是同步進行的,也就是一個請求在收到回應之前會一直等待,這會影響應用程式的回應速度和效能。但是,PHP現在已經擁有了平行和非同步請求處理的能力,這些功能讓我們可以更好地處理大量並發請求,提高應用程式的回應速度和效能。本文將討論PHP後端API開發中的如何處

隨著Java技術的不斷發展,JavaAPI已成為許多企業開發的主流方案之一。在JavaAPI開發過程中,常常需要對大量的請求和資料進行處理,但是傳統的同步處理方式無法滿足高並發、高吞吐量的需求。因此,非同步處理成為了JavaAPI開發中的重要解決方案之一。本文將介紹JavaAPI開發中常用的非同步處理方案及其使用方法。一、Java異

新浪微博app要怎麼創建群組聊天?新浪微博app是一款可以讓用戶們在這個軟體上面進行社交的軟體,用戶在這裡可以和別的用戶互相關注,也可以在這裡私訊別的用戶,也就是說用戶們可以在這個軟體上面進行聊天,除此之外,這個軟體上面還可以讓用戶們創建群聊然後進行聊天,很多用戶都還不知道要怎麼創建群聊,下面小編整理了創建群聊的方法供大家參考。新浪微博app創建群組聊天的方法 1、首先,打開軟體,在「訊息」介面中找到並點擊右上角的「齒輪」選項; 2、然後,在彈出的選項框中點

隨著網路的快速發展,越來越多的應用程式採用了Web架構,而PHP作為一種廣泛應用於Web開發中的腳本語言,也日益受到了廣泛的關注與應用。隨著業務的不斷發展與擴展,PHPWeb應用程式的效能問題也逐漸暴露出來,如何進行效能調優已成為PHPWeb開發人員必須面臨的一項重要挑戰。接下來,本文將介紹PHP後端API開發中的效能調優技巧,幫助PHP開發人員更好

在Beego中使用GraphQL進行API開發GraphQL是一種由Facebook開發的現代API查詢語言,它提供了一種更有效率、更靈活的方式來建立API。與傳統RESTfulAPI不同的是,GraphQL允許客戶端定義其需要的數據,服務端只傳回客戶端請求的數據,從而減少了不必要的資料傳輸。 Beego是一個用Go語言寫的開源Web框架,它提供了一系列的工

隨著網路的快速發展,越來越多的業務需求需要透過網路進行資料交換,其中API作為資料傳輸的中介,扮演著至關重要的角色。在PHP後端API開發中,可擴展性設計是一個非常重要的方面,它可以使系統具有更強大的適應能力和延展性,並提高系統的健壯性和穩定性。一、什麼是可擴充性設計可擴充性是指系統的某項功能可以在不影響系統原有效能的前提下,增加額外的功能以滿足業務需求。在

PHPAPI開發中的最佳跨域策略和實作隨著RESTfulAPI的興起,作為後端開發語言的PHP也在眾多Web應用中得到了廣泛的應用。在開發RESTfulAPI時,往往需要考慮到跨域存取的問題。本文將討論PHPAPI開發中最佳的跨域策略及如何實現。跨域(Cross-OriginResourceSharing)指的是一個網域下的文件或腳本試圖去請求另一

在PHPAPI開發中,輸入和輸出的驗證是非常重要且不可或缺的步驟。正確認識並嚴格執行輸入和輸出驗證可以幫助我們減少許多潛在的問題,防範安全漏洞和錯誤,同時也能提高應用程式的品質和可靠性。以下是PHPAPI開發中最佳的輸入與輸出驗證實務。輸入驗證在開發API時,我們應該始終遵循「好的輸入才能產生好的輸出」的原則。因此,輸入驗證是非常重要的一環。以下是
