該功能是在基於Android的應用中實現sina微博分享,利用sina微博這個平臺來推廣自己的應用,大家有興趣可以看看新浪微博開發平臺的相關介紹http://open.weibo.com/
運行結果:
圖1 新浪官方授權網頁
圖2 客戶端界面
右上角爲登錄用戶在sina中的用戶名,換個賬號可以切換用戶。
圖3 新浪微博分享結果
新浪OAuth認證
OAuth的基本概念,OAUTH協議爲用戶資源的授權提供了一個安全的、開放而又簡易的標準。與以往的授權方式不同之處是OAUTH的授權不會使第三方觸及到用戶的帳號信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請獲得該用戶資源的授權,因此OAUTH是安全的。同樣新浪微博提供OAuth認證也是爲了保證用戶賬號和密碼的安全,在這裏通過OAuth建立普通新浪微博用戶、客戶端程序(我們正在開發的這個android客戶端程序)、新浪微博三者之間的相互信任關係,讓客戶端程序(我們正在開發的這個android客戶端程序)不需要知道用戶的賬號和密碼也能瀏覽、發佈微博,這樣有效的保護了用戶賬號的安全性不需要把賬號密碼透露給客戶端程序又達到了通過客戶端程序寫微博看微博目的。這個是OAuth的作用。
圖4 新浪微博OAuth認證過程
結合新浪微博的OAuth認證來說說具體的功能實現,首先羅列一下關鍵字組,下面四組關鍵字跟我們接下來OAuth認證有非常大的關係。
第一組:(App Key和App Secret),這組參數就是在新浪微博開放平臺建一個新的應用獲取App Key和App Secret。
第二組:(Request Token和Request Secret)
第三組:(oauth_verifier)
第四組:(user_id、Access Token和Access Secret)
圖中的1,2,3,4 即對應上面的四組參數,而圖中小寫的英文字母表示OAuth認證過程的先後順序。
新浪微博的OAuth認證過程,當用戶第一次使用本客戶端軟件時,客戶端程序用第一組作爲參數向新浪微博發起請求,然後新浪微博經過驗證後返回第二組參數給客戶端軟件同時表示新浪微博信任本客戶端軟件,當客戶端軟件獲取第二組參數時作爲參數引導用戶瀏覽器跳至新浪微博的授權頁面,然後用戶在新浪的這個授權頁面裏輸入自己的微博賬號和密碼進行授權,完成授權後根據客戶端設定的回調地址把第三組參數返回給客戶端軟件並表示用戶也信任本客戶端軟件,接下客戶端軟件把第二組參數和第三組參數作爲參數再次向新浪微博發起請求,然後新浪微博返回第四組參數給客戶端軟件,第四組參數需要好好的保存起來這個就是用來代替用戶的新浪賬號和密碼用的,在後面調用api時都需要。從這個過程來看用戶只是在新浪微博的認證網頁輸入過賬戶和密碼並沒有在客戶端軟件裏輸入過賬戶和密碼,客戶端軟件只保存了第四組數據並沒有保存用戶的賬戶和密碼,這樣有效的避免了賬戶和密碼透露給新浪微博之外的第三方應用程序,保證 了安全性。
客戶端保存了第四組參數,可以利用第四組參數使用新浪微博提供一些API來實現一些功能,此時,可能會考慮到微博的被人盜用,但是用戶可以在 賬號 —> 賬號設置 —> 應用授權 看到所授權的應用,用戶也可以取消授權。
圖 5 授權應用