新浪微博·開放平台: http://open.weibo.com/
自己想寫個應用需要新浪微博的使用者認證,弄了1天各種錯誤,參考了大量網上的解釋終於成功,
經驗寫下來和大家分享。
一、建立自己的第一個應用:
(圖1)
(圖2)
(圖3)
(圖4)填寫相關資訊:java案頭項目選擇:用戶端-》案頭。注意這裡的應用地址是你未來應用投放的下載地址,如果沒有可以寫http://www.baidu.com等可以訪問的地址均可,等有了正式的地址後可以修改。點擊“建立”
(圖5) (圖6)
到此你就已經建立完你的應用並且通過第7步和第9步擷取到了key和URI.
二、OAuth2.0認證
1、OAuth2.0概述
大部分API的訪問如發表微博、擷取私信,關注都需要使用者身份,目前新浪微博開放平台使用者身份鑒權有OAuth2.0和Basic Auth(僅用於應用所屬開發人員調試介面),新版介面也僅支援這兩種方式。OAuth2.0較1.0相比整個授權驗證流程更簡單更安全,也是未來最主要的使用者身分識別驗證和授權方式。
關於OAuth2.0協議授權流程查看OAuth2.0授權流程 ,其中Client指第三方應用,Resource Owner指使用者,Authorization Server是我們的授權伺服器,Resource Server是API伺服器。
開發人員可以先瀏覽OAuth2.0的介面文檔,熟悉OAuth2的介面及參數的含義,然後我們根據應用情境各自說明如何使用OAuth2.0。
| 介面 |
說明 |
| OAuth2/authorize |
請求使用者授權Token |
| OAuth2/access_token |
擷取授權過的Access Token |
| OAuth2/get_token_info |
授權資訊查詢介面 |
| OAuth2/revokeoauth2 |
授權回收介面 |
| OAuth2/get_oauth2_token |
OAuth1.0的Access Token更換至OAuth2.0的Access Token |
1. OAuth2驗證步驟
第一步:修改Config.properties的配置資訊.開啟這個檔案,將你的資訊填入,具體如下:
client_ID = (你申請應用的appkey 見圖5)
client_SERCRET =(你申請應用的app_secret)
redirect_URI =https://api.weibo.com/oauth2/authorize(見圖6 和“授權回調頁:”地址相同)
baseURL = https://api.weibo.com/2/
accessTokenURL = https://api.weibo.com/2/oauth2/access_token
authorizeURL = https://api.weibo.com/2/oauth2/authorize
第二步開啟example目錄下的檔案OAuth4Code.java,code如下圖
第三步:運行此檔案,瀏覽器會自動開啟一個網頁,如下圖.在裡面輸入你的帳號、密碼,點擊“登陸並授權” 如果此處看不到微博認證介面或者介面出錯錯誤碼是“redirect_uri_mismatch 21322”錯誤原因是Config.properties裡填寫的redirect_URI地址和圖6中的不一致導致,修改成一致即可。
第四步:點擊授權後,瀏覽器會自動跳轉到回調頁面(由於回調頁面會認證不上,所以瀏覽器會開啟一個第三方授權錯誤的介面,入下圖),把地址欄中的“https://api.weibo.com/oauth2/authorize?code=#####”中的##### copy出來。
第五步:填寫XXXXX 到下圖的Eclipse的控制台中[Enter]:之後,然後斷行符號. 最後擷取一串資訊AccessToken [accessToken=2.00fEE9xC5IlVKEa41d4c9090XHhI2E, expireIn=157679999, refreshToken=,uid=2710758337]
第六步:將擷取到的資訊填入java的Run Configurations->Arguments裡面,注意兩個參數:accessToken=2.00fEE9xC5IlVKEa41d4c9090XHhI2E, uid=2710758337 中間有空格
第七步:到此你就算是認證成功了,可以嘗試使用java工程裡的其他examples測試功能,要注意的是由於項目未經審核,所以授權的有效期間是1天,就是說每天都要重複OAuth一次。