1. 程式人生 > >新浪微博API使用入門:申請應用、授權、使用官方java版本SDK

新浪微博API使用入門:申請應用、授權、使用官方java版本SDK

p.s. 本文的工程採用java語言eclipse平臺開發,配置過程也是基於此。

開發總流程圖

讓你的應用在新浪微博開放平臺上運營,只需要通過簡單的六個步驟:


成為開發者

1.建立微博帳號

開發者頁面http://open.weibo.com/development點選“登入”或者“建立應用”,通過帳號登入成為一名開發者。一個新浪微博帳號可以管理10個不同的應用,建議開發人員使用官方微博的帳號,以便統一管理。


2.選擇應用型別

點選“建立應用”,即進入目標應用的型別選擇環節。根據應用型別的提示,選擇相應的應用建立流程。我在建立應用的時候選的型別是“其他”,因為要開發一個java客戶端軟體。(裡面的資訊暫時可以亂填寫,應用開發完成了再回來修改。)建立後系統會分配一個App Key和App Secret以驗證開發者的身份,記下來,後面會用到。


3.開發者資訊設定

在開發者資訊設定頁填寫資料。成為新浪微博認證的開發者,你需要通過郵箱驗證和手機驗證。

注意:開發者型別一經填寫,不可修改。個人開發者不可接入微博支付業務,請謹慎選擇。


應用開發

1.      下載SDK原始碼

2.      解決授權錯誤

解決獲取使用者授權是出現由於回撥地址填寫錯誤造成的 error :redirect_uri_mismatch。

登入新浪微博開放平臺→選擇管理中心→點選需要應用名進入相應的應用→左側應用資訊→高階資訊→OAuth2.0 授權設定點選編輯→站內應用redirect_uri等於應用資訊中的“站內應用地址”而非“應用實際地址”;其他應用:redirect_uri

需改成

http://open.weibo.com/apps/30871*****/info/advanced(30871*****替換成你應用的AppKey)。

如果你是站外網頁應用或客戶端應用,填寫redirect_uri地址:

http://open.weibo.com/apps/應用APPKEY/privilege/oauth

注意:修改應用回撥頁或繫結域名後需要約半小時左右時間生效。

3.      填寫相關配置

在eclipse的工程中,填寫相關配置:在Config.properties裡

client_ID :appkey                          

client_SERCRET:app_secret

redirect_URI :回撥地址(此處需要與第3步中的redirect_uri一致)

4.      修改工程程式碼

在eclipse的工程中,修改weibo4j.examples.oauth2.OAuth4Code.java檔案,註釋14行和15行,緊接著插入下列程式碼:

BareBonesBrowserLaunch.openURL(oauth.authorize("code","",""));

修改結果如圖所示:


5.      授權

首先進行執行剛剛修改的weibo4j.examples.oauth2.OAuth4Code.java檔案,引導需要授權的使用者到授權網頁,如果使用者同意授權,就點選“授權”。系統回撥應用,頁面跳轉至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE,換取AccessToken。

記錄回撥應用後網頁中位址列“code”後面的AccessToken:

授權級別和OAuth2.0access_token有效期對應表:

授權級別       測試       普通      中級      高階

授權有效期       1天       7天       30天     90天

注:

只有未過文案稽核的應用才處於測試級別。

應用所屬開發者授權應用時,有效期為5年。

access_token自動延續方案

如果使用者在授權有效期內重新開啟授權頁授權(如果此時使用者有微博登入狀態,這個頁面將一閃而過),那麼新浪會為開發者自動延長access_token的生命週期,請開發者維護新授權後得access_token值。

如何查詢當前應用的授權級別

你可以在http://open.weibo.com/apps/應用APPKEY/privilege/oauth 上查詢當前應用的授權級別。

6.      測試

假若想獲得某個使用者的資訊,可以執行

weibo4j.examples.user.ShowUser檔案,需要在RunConfigurations裡配置兩個引數,被檢視使用者的使用者id和剛才的“code”碼。

執行結果在命令列中顯示: