

在上一篇實現了用戶授權頁面的UI,如上圖,接下來要做的就是在這個基礎上完成功能部分真正實現用戶的授權認證,這一篇是android開發我的新浪微博客戶端-OAuth篇(2.1)的具體應用篇原理就不多解釋了不懂的看OAuth篇即可。認證過程從點擊開始按鈕然后跳轉到新浪的授權頁面,接著用戶在新浪的頁面里輸入自己的賬戶和密碼確定后返回用戶授權頁面。首先給開始按鈕添加點擊事件代碼,代碼中主要是調用我們前面android開發我的新浪微博客戶端-OAuth篇(2.1)完成的OAuth類的RequestAccessToken方法用來獲取oauth_verifier,具體代碼如下:
上面的代碼中重點來說明一下 RequestAccessToken方法的第二參數CallBackUrl,這個參數是用戶在新浪的頁面中輸入賬戶密碼后完成認證后返回的地址,我這里是這樣設置的CallBackUrl
= "myapp://AuthorizeActivity",在AndroidManifest.xml中配置給AuthorizeActivity添加如下配置把myapp://AuthorizeActivity指向到AuthorizeActivity,這樣當頁面返回到AuthorizeActivity中就可以獲取到傳過來的oauth_verifier參數。
再AuthorizeActivity如果來接收返回的oauth_verifier參數呢?接下來在AuthorizeActivity添加如下方法:
關于onNewIntent的說明是這樣的,onCreate是用來創建一個Activity也就是創建一個窗體,但一個Activty處于任務棧的頂端,若再次調用startActivity去創建它,則不會再次創建。若你想利用已有的Acivity去處理別的Intent時,你就可以利用onNewIntent來處理。在onNewIntent里面就會獲得新的Intent,在這里AuthorizeActivity是屬于已有的Acivity,所以需要onNewIntent來處理接收返回的參數,獲取oauth_verifier參數后OAuth還沒有結束從android開發我的新浪微博客戶端-OAuth篇(2.1)描述來看還需要進行根據這個參數繼續向新浪微博請求獲取User_id、Access
Token和Access Secret,在這里我把這些操作全部寫在了GetAccessToken方法中。在onNewIntent添加如下代碼:
通過上面的代碼完成了User_id、Access
Token和Access Secret 獲取并且保存到了sqlite庫中,這樣就完成了用戶的OAuth認證,當需要調用新浪的api時只需要去sqlite庫中找該用戶的User_id、Access
Token和Access Secret 即可。到這里本篇就結束了,請關注下一篇。
posted on 2012-03-20 22:04
mixer-a 閱讀(580)
評論(0) 編輯 收藏