首先,需要下載新浪微博的SDK,這里附上地址:http://vdisk.weibo.com/s/z7iFc2gCCwC1b
下載完了之后解壓,然后打開(kāi)myeclipse,新建項(xiàng)目,再把剛才解壓出來(lái)的Import到項(xiàng)目中。如圖所示:
接下來(lái),到這個(gè)網(wǎng)址http://open.weibo.com/注冊(cè)應(yīng)用。有三種應(yīng)用,選擇站內(nèi)應(yīng)用,然后創(chuàng)建應(yīng)用。把該填寫(xiě)的都填寫(xiě)上。確認(rèn)就ok。需要注意的是有兩點(diǎn):
1,是注冊(cè)完應(yīng)用,會(huì)有App Key以及App Secret,這個(gè)接下來(lái)會(huì)用到。
2,到《我的應(yīng)用》,選擇:應(yīng)用信息,
點(diǎn)擊“編輯”,然后注意到有兩個(gè)地址:其中“應(yīng)用實(shí)際地址”要慎重填寫(xiě),我的是http://127.0.0.1/callback.jsp,注意地址后面不要有“/”這些。現(xiàn)在,記住這個(gè)地址,接下來(lái)要用到。
現(xiàn)在,轉(zhuǎn)向myeclipse,src下,有config.properties文件,編輯它
client_ID就是App key。
client_SERCRET就是App Secret
redirect_URI就是之前著重提到的那個(gè)地址:http://127.0.0.1/callback.jsp
保存。
接下來(lái),我們發(fā)送一條微博:
examples下,weibo4j.examples.oauth2包下:OAuth4Code類,直接運(yùn)行:會(huì)出現(xiàn)應(yīng)用授權(quán)頁(yè)面,輸入用戶名和密碼之后,就會(huì)跳到之前填寫(xiě)的那個(gè)redirect_URI頁(yè)面。如果瀏覽器中保存著微博的信息,則不經(jīng)過(guò)這個(gè)頁(yè)面而直接跳轉(zhuǎn)到redirect_URI頁(yè)面。
在跳轉(zhuǎn)到redirect_URI頁(yè)面后,看到URL地址欄里,格式是redirect_URI?code=xxxxxx。下面,復(fù)制code的值,然后進(jìn)入到myeclipse的控制臺(tái)輸出那里,看到:
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]: |
接下來(lái),粘帖code到[Enter]:后面。回車。就會(huì)看到一大堆輸出信息。
直接跳到最后,看到access_token,這個(gè)就是我們需要的東西了,記錄下來(lái)。
接下來(lái)發(fā)送微博:
在weibo4j.examples.timeline包下,UpdateStatus類下/
需要傳遞兩個(gè)參數(shù)進(jìn)去,我就直接寫(xiě)了進(jìn)去。代碼如下:
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 = "此條微博來(lái)自星光發(fā)布系統(tǒng)發(fā)布" ; 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 = "此條微博來(lái)自星光發(fā)布系統(tǒng)發(fā)布" ; 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就是想要發(fā)表的東西。
到此,就可以發(fā)送微博了。
有問(wèn)題留言。!
附:
有時(shí)候,比如用另外一個(gè)微博帳號(hào)(就是區(qū)別于注冊(cè)應(yīng)用的這個(gè)帳號(hào))時(shí),會(huì)出現(xiàn)一些錯(cuò)誤。錯(cuò)誤信息:
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) |
這個(gè)的解決辦法:還是在我的應(yīng)用那里,點(diǎn)擊”應(yīng)用信息“,”測(cè)試賬號(hào)“,看到有添加測(cè)試賬號(hào),這個(gè)時(shí)候,你把想要發(fā)布微博的帳號(hào)的用戶昵稱添加進(jìn)去,就OK。