利用java語言在eclipse下實如今新浪微博開發平臺發微博(轉)

實現原理: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 KeyApp 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工程下examplesweibo4j.examples.oauth2OAuth4Code.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包若是不識別,重新導入一下。

相關文章
相關標籤/搜索