首先,需要下載新浪微博的SDK,這里附上地址:http://vdisk.weibo.com/s/z7iFc2gCCwC1b
下載完了之后解壓,然后打開myeclipse,新建項目,再把剛才解壓出來的Import到項目中。如圖所示:
接下來,到這個網址http://open.weibo.com/注冊應用。有三種應用,選擇站內應用,然后創建應用。把該填寫的都填寫上。確認就ok。需要注意的是有兩點:
1,是注冊完應用,會有App Key以及App Secret,這個接下來會用到。
2,到《我的應用》,選擇:應用信息,
點擊“編輯”,然后注意到有兩個地址:其中“應用實際地址”要慎重填寫,我的是http://127.0.0.1/callback.jsp,注意地址后面不要有“/”這些。現在,記住這個地址,接下來要用到。
現在,轉向myeclipse,src下,有config.properties文件,編輯它
client_ID就是App key。
client_SERCRET就是App Secret
redirect_URI就是之前著重提到的那個地址:http://127.0.0.1/callback.jsp
保存。
接下來,我們發送一條微博:
examples下,weibo4j.examples.oauth2包下:OAuth4Code類,直接運行:會出現應用授權頁面,輸入用戶名和密碼之后,就會跳到之前填寫的那個redirect_URI頁面。如果瀏覽器中保存著微博的信息,則不經過這個頁面而直接跳轉到redirect_URI頁面。
在跳轉到redirect_URI頁面后,看到URL地址欄里,格式是redirect_URI?code=xxxxxx。下面,復制code的值,然后進入到myeclipse的控制臺輸出那里,看到:
1
2
|
code=https://api.weibo.com/oauth2/authorize?client_id=1458508643&redirect_uri=http://127.0.0.1/callback.jsp&response_type=code Hit enter when it's done.[Enter]: |
接下來,粘帖code到[Enter]:后面。回車。就會看到一大堆輸出信息。
直接跳到最后,看到access_token,這個就是我們需要的東西了,記錄下來。
接下來發送微博:
在weibo4j.examples.timeline包下,UpdateStatus類下/
需要傳遞兩個參數進去,我就直接寫了進去。代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
packageweibo4j.examples.timeline; importweibo4j.Timeline; importweibo4j.Weibo; importweibo4j.examples.oauth2.Log; importweibo4j.model.Status; importweibo4j.model.WeiboException; publicclassUpdateStatus { publicstaticvoidmain(String[] args) { String access_token = "2.00lBvA1CxikhaBfbc0d2a0c10FWttI" ; String statuses = "此條微博來自星光發布系統發布" ; Weibo weibo = newWeibo(); weibo.setToken(access_token); Timeline tm = newTimeline(); try { Status status = tm.UpdateStatus(statuses); Log.logInfo(status.toString()); } catch (WeiboException e) { e.printStackTrace(); } } } package weibo4j.examples.timeline; import weibo4j.Timeline; import weibo4j.Weibo; import weibo4j.examples.oauth2.Log; import weibo4j.model.Status; import weibo4j.model.WeiboException; public class UpdateStatus { public static void main(String[] args) { String access_token = "2.00lBvA1CxikhaBfbc0d2a0c10FWttI" ; String statuses = "此條微博來自星光發布系統發布" ; Weibo weibo = new Weibo(); weibo.setToken(access_token); Timeline tm = new Timeline(); try { Status status = tm.UpdateStatus(statuses); Log.logInfo(status.toString()); } catch (WeiboException e) { e.printStackTrace(); } } } |
statuses就是想要發表的東西。
到此,就可以發送微博了。
有問題留言。!
附:
有時候,比如用另外一個微博帳號(就是區別于注冊應用的這個帳號)時,會出現一些錯誤。錯誤信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
{"error":"applications over the unaudited use restrictions!","error_code":21321,"request":"/2/statuses/update.json"} eibo4j.model.WeiboException: 403:The request is understood, but it has been refused. An accompanying error message will explain why. error:applications over the unaudited use restrictions! error_code:21321/2/statuses/update.json at weibo4j.http.HttpClient.httpRequest(HttpClient.java:414) at weibo4j.http.HttpClient.httpRequest(HttpClient.java:372) at weibo4j.http.HttpClient.post(HttpClient.java:301) at weibo4j.http.HttpClient.post(HttpClient.java:286) at weibo4j.Timeline.UpdateStatus(Timeline.java:708) at weibo4j.examples.timeline.UpdateStatus.main(UpdateStatus.java:18) {"error":"applications over the unaudited use restrictions!","error_code":21321,"request":"/2/statuses/update.json"} weibo4j.model.WeiboException: 403:The request is understood, but it has been refused. An accompanying error message will explain why. error:applications over the unaudited use restrictions! error_code:21321/2/statuses/update.json at weibo4j.http.HttpClient.httpRequest(HttpClient.java:414) at weibo4j.http.HttpClient.httpRequest(HttpClient.java:372) at weibo4j.http.HttpClient.post(HttpClient.java:301) at weibo4j.http.HttpClient.post(HttpClient.java:286) at weibo4j.Timeline.UpdateStatus(Timeline.java:708) at weibo4j.examples.timeline.UpdateStatus.main(UpdateStatus.java:18) |
這個的解決辦法:還是在我的應用那里,點擊”應用信息“,”測試賬號“,看到有添加測試賬號,這個時候,你把想要發布微博的帳號的用戶昵稱添加進去,就OK。