豆瓣api通過oauth允許第三方應用訪問使用者資料,所以oauth認證就是我們整個project的基礎了。
oauth認證聽起來挺神秘,其實挺簡單的。
豆瓣的api有對於oauth認證的專門說明:
在你使用oauth認證之前,先仔細讀一讀文件非常有必要,因為中間過程出現一點偏差,你就不能被認證成功,所以仔細閱讀官方文件是重中之重:
如果你的英文不夠給力的話,可以看看這篇中文的介紹,說的很清楚:
google oauth專案已經提供了oauth的各種語言的庫:
我們正式使用了google oauth中的c#庫:
因為oauth已經成為了第三方開發者使用豆瓣api的一大障礙,豆瓣曾經專門舉辦了一次活動來講解如何通過oauth使用豆瓣api:
這次活動的原始碼在google code上可以找到:我們正式參考了這個檔案,對我們的幫助很大,省去了很多摸索的時間
作為命令列程式我們已經測試成功了,但是當移植到windows phone上之後就出現了問題
問題的關鍵在於silverlight版的網路方面的api和c#的不同,silverlight的api更少,這就導致了上面的庫的一些網路訪問要自己改寫
仔細閱讀httpwebrequest的文件後,我們發現,要進行乙個網路請求,至少要三個函式,因為需要使用兩次非同步請求(begingetrequeststream, begingetresponse)
這時候dry(don』t repeat yourself)就顯得尤為重要了
作為pm,我決定把網路訪問這一塊封裝好,給大家提供統一的,簡單好用的藉口。
我本準備自己把那兩個非同步請求封裝起來,後來發現已經有現成的庫可用,而且很好很強大。
這個庫就是restsharp:
而且restsharp還提供了windows phone對應的dll,很是方便,原來的三個函式現在只需要乙個函式幾行就可以搞定
對於很多請求,豆瓣都要求有認證才可以訪問,根據豆瓣的文件「進行post、put、delete請求時,豆瓣暫時不支援使用在url中或者post form中傳遞oauth引數。因此你只能選擇在header中傳遞oauth引數」,看來我們只能把oauth加到http header中了。
public oauthheader(string uri, string method)
public string getheader()}}
傳入乙個url和乙個方法(post or put or delete or get),我就給他返回乙個oauth header,其他同學直接呼叫我的**就好了,並不需要關心認證問題
那具體該如何來進行乙個網路請求呢?
我寫了兩個例子,乙個post的,乙個get的。
向豆瓣傳資料,post:(我把說明都寫到了注釋中)
// "post" 例項,以發一條狀態為例
private void button1_click(object sender, routedeventargs e));}
//get例項,以獲取好友列表為例,get比較簡單,不需要傳入資料
private void button3_click(object sender, routedeventargs e));}
這樣就可以大大簡化網路請求,真正做到了don』t repeat yourself
豆瓣api之OAuth認證
豆瓣api通過oauth允許第三方應用訪問使用者資料,所以oauth認證就是我們整個project的基礎了。oauth認證聽起來挺神秘,其實挺簡單的。豆瓣的api有對於oauth認證的專門說明 在你使用oauth認證之前,先仔細讀一讀文件非常有必要,因為中間過程出現一點偏差,你就不能被認證成功,所以...
php 豆瓣api 本地呼叫豆瓣API
呼叫豆瓣的api,報錯 剛開始學php,求大腿幫忙解決 頁面搜尋 js go click function elseelse var sq input val ajax type get url datatype json data q sq,count 10 success function da...
OAuth認證過程
一 什麼是oauth協議 oauth 開放授權 是乙個開放標準。允許第三方 在使用者授權的前提下訪問在使用者在服務商那裡儲存的各種資訊。而這種授權無需將使用者提供使用者名稱和密碼提供給該第三方 oauth允許使用者提供乙個令牌給第三方 乙個令牌對應乙個特定的第三方 同時該令牌只能在特定的時間內訪問特...