Coding 之路,不由分說 .Net,MVC,jQuery

18三月/120

【oAuth 2.0 實作系列】ASP.Net MVC 實作使用 oAuth 2.0 連接 Windows Live API

Google PageRank查詢

前言

一系列的實作終於到最後一篇了,雖然和前面兩篇大致上流程跟程式碼都差不多,但是其中還是有些細節有些許不同,主要是因為 oAuth 2.0 還在草案階段,而且每一家服務提供者也可能根據自己需求會有一些不一樣的參數,但是主要流程還是一樣的,接下來就來看 Windows Live 篇囉!

說明

在開始前一樣先申請好必要的 Client ID 和 Client Secrect 囉!這邊可以參考這一篇文章的介紹。 這邊再次提醒回傳網址必須要設定為有效的網址,可以先在 host 檔案設定好一個網址,方便後續測試時候可以使用。

先開一個 ASP.Net MVC3 的空專案

用 NuGet 加入 JSON.Net 這一個套件,因為後續接收到的格式會是 JSON 格式,可以方便轉換成類別來使用。

建立一個 Controller,本例為 HomeController。

新增一個靜態類別 Utility ,並且新增一個靜態方法 UrlEncode,這邊不用微軟內建的函數是因為微軟在部分字元上編碼有些許不同,因此使用自定的方式來處理避免有所差異導致錯誤。

接下來新增一個 TokenData 類別,之後用來轉換接收到的 JSON 資料,未來接收到的會有四個參數,但是之後連接 API 我們只會用到 access_token。

接下來開始修改 Controller !首先準備好 const 參數

接下來撰寫三個 Action:index、CallBack、CallAPI

index

程式碼如上所示, scope 若有多個,可以使用半型逗號(,)做分隔。

CallBack

取得回傳的 code 之後,就是用 GET 方法來連結取得授權 AccessToken 的網址囉!取得的網頁會以 JSON 格式顯示資訊,因此透過 JSON.Net 來轉換成類別來使用。

CallAPI

而使用的方式也很簡單,這邊是以取得相簿列表的 API 來做範例,而因為只是取得資料,所以使用 GET 方法帶上 access_token 參數就可以取得相簿列表的 JSON 囉!

執行結果

如果設定跟程式都沒問題的話,在登入的情形下就可以看到請求授權的畫面囉!

按下允許之後,程式就會回傳到 CallBack 這一個 Action 並且帶 Code 這一個參數,我們再透過這一個參數去取得 Token,取得之後就直接轉去 CallAPI 來使用,就可以取得相簿列表囉!

完整程式範例

結論

一系列的實作文章終於都寫完了,希望這一系列文章對於剛好需要用到 oAuth 2.0 來連接 Facebook、Google、Windows Live API 的讀者會有一點點的幫助,如果在過程有任何問題也歡迎提出來討論囉!

參考資料

Windows Live SDK oAuth 2.0

Scopes and permissions

Windows Live REST API

回覆 (0) 引用 (0)

還沒有回覆。


Leave a comment

目前沒有人引用這篇文章。