實現原理:java
開發者利用sdk包開發某個應用完成後,該應用與新浪微博服務器鏈接,經過HTTP數據形式與服務器的API接口交換數據。在開發過程當中,亦可實時調試。nginx
各類語言的軟件開發包(SDK)http://open.weibo.com/wiki/SDKapi
一、下載Java SDK最新的weibo4j-oauth2-beta2.0版本,詳細地址和參考文檔爲:服務器
http://code.google.com/p/weibo4j/,資料超全的。贊一個!!!app
二、下載後weibo4j-oauth2-beta2.0.zip後解壓在Eclipse目錄下的workspace空間裏eclipse
三、打開Eclipse後導入File-Import-General-Exisiting Projects in workspace,導入成功後出現weibo4j-oauth2的工程。測試
四、爲了可以成功受權登陸須要設置config.properties裏面的值(內容以下),必需要到微博開放平臺註冊相關信息,地址爲:http://open.weibo.com/,前提是本身註冊有一個新浪微博帳號和對應密碼。ui
client_ID = google
client_SERCRET =編碼
redirect_URI =
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
五、進入:http://open.weibo.com/後,執行「站內應用」—建立應用。建立站內應用的信息能夠任意填寫,最好不要綁定域名,不然配置相對比較麻煩。(填寫信息會發送郵件激活)
六、建立成功後點擊個人應用—應用信息,你會發現本身建立的應用自動生成的App Key和App Secret,本身須要編輯填寫站內應用地址和實際地址,具體以下:
App Key: ***
App Secret: ***
站內應用地址:是指你這個應用成功發佈在新浪微博的對應的地址http://apps.weibo.com/xxxxxxx (xxxxxxx本身能夠任意填寫命名)
應用實際地址:其實是你本地建立的應用地址http://www.baidu.com(能夠任意填寫,但爲了成功建立,不出現第三方受權錯誤,必需填寫可實現的回調地址,從而得到地址欄裏的「code」值,我這裏用了百度官網地址)
7、填寫config.properties裏的對應內容。(紅字加粗是本身手動填寫的)
client_ID =App Key的值
client_SERCRET =App Secret的值
redirect_URI =應用實際地址的值
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
8、編譯運行weibo4j-oauth2工程下examples裏weibo4j.examples.oauth2的OAuth4Code.java文件,會進入受權界面,進行成功成全後會自動跳轉到回調地址的頁面,因爲我使用的是http://www.baidu.com,會跳到百度的頁面,複製地址欄裏內容以下
http://www.baidu.com/?code=xxxxxxxxxxxxxxxx,注意code後面的內容值。要根據這個code值得到accessToken,擁有accessToken認證碼你的帳戶就獲得微博的承認。編譯OAuth4Code跳轉到百度時,查看eclipse運行後的Console窗口出現以下內容:
https://api.weibo.com/oauth2/authorize?client_id=xxxxxxxxx&redirect_uri=http://www.baidu.com&response_type=code
Hit enter when it's done.[Enter]:code的值(必須本身填寫)
在此輸入code裏的值,會自動出現以下內容:
0 INFO [2012-06-08 11:00:53] code: xxxxxxxxxxxxxxxxxx(code的值)
360 DEBUG [2012-06-08 11:00:53] Request:
360 DEBUG [2012-06-08 11:00:53] POSThttps://api.weibo.com/oauth2/access_token
3282 DEBUG [2012-06-08 11:00:56] Response:
3282 DEBUG [2012-06-08 11:00:56] https StatusCode:200
3282 DEBUG [2012-06-08 11:00:56] Server:nginx/1.1.17
3282 DEBUG [2012-06-08 11:00:56] Date:Fri, 08 Jun 2012 03:01:06 GMT
3282 DEBUG [2012-06-08 11:00:56] Content-Type:text/plain;charset=UTF-8
3282 DEBUG [2012-06-08 11:00:56] Content-Length:109
3282 DEBUG [2012-06-08 11:00:56] Connection:keep-alive
3282 DEBUG [2012-06-08 11:00:56] Pragma:No-cache
3282 DEBUG [2012-06-08 11:00:56] Cache-Control:no-cache
3282 DEBUG [2012-06-08 11:00:56] Expires:Thu, 01 Jan 1970 00:00:00 GMT
3282 DEBUG [2012-06-08 11:00:56] Api-Server-IP:10.75.25.86
3282 DEBUG [2012-06-08 11:00:56] X-Varnish:1117492536
3282 DEBUG [2012-06-08 11:00:56] Age:0
3282 DEBUG [2012-06-08 11:00:56] Via:1.1 varnish
3313 DEBUG [2012-06-08 11:00:56] {"access_token":"XXXXXXXXXXXXXXXXX","remind_in":"26384","expires_in":26384,"uid":"XXXXXXXX"}
AccessToken [accessToken=XXXXXXXXXXXXXXXXXXX, expireIn=26384, refreshToken=,uid=XXXXXXXXXX]
這裏的access_token就是認證碼,這樣你的帳戶就成功獲得微博的承認。uid是我本身添加的測試用戶,在應用未發佈前用於測試的(能夠之後設置,若是要設置,在應用信息的高級信息中添加便可,其實uid就是進入「個人微博」後的一串序列號,用以代表身份的)。
接着就是發微博了,任意地方新建一個class文件,編碼以下:
import weibo4j.Timeline;
import weibo4j.Weibo;
import weibo4j.http.AccessToken;
import weibo4j.model.Status;
import weibo4j.model.WeiboException;
public class SendWeibo {
public static void main(String[] args) throws WeiboException {
// TODO Auto-generated method stub
Weibo weibo = new Weibo();
String access_token ="xxxxxxxxxxxxxxx";//這裏對應accessToken=XXXXXXXXXXXXXXXXXXX的值
weibo.setToken(access_token);
Timeline tm = new Timeline();
Status status = tm.UpdateStatus("慧慧的經過新浪微博開放平臺發送的第一條微博,哈哈~~");//本身所發的微博內容,不超過140個字!
}
}
進入新浪官方微博,就能夠查看到本身發的微博了,嘿嘿。。。。
PS:
1.isempty方法在jdk1.5之後才支持,若是當前機器JDK版本低於1.5須要升級或者更改寫法。
2.導入的jar包若是不識別,重新導入一下。