日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java微博开发_【新手入门篇】新浪微博应用开发之Java入门篇

發(fā)布時間:2025/3/11 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java微博开发_【新手入门篇】新浪微博应用开发之Java入门篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

新浪微博應(yīng)用開發(fā)之Java篇

2012年11月11日星期日

一、開發(fā)流程簡介:

2、? 在以下地址創(chuàng)建一個應(yīng)用,假設(shè)創(chuàng)建一個桌面應(yīng)用:

3、? 進入管理中心,查看并記住應(yīng)用ID和密碼:

4、? 在“應(yīng)用中心-高級信息”設(shè)置回調(diào)頁面(設(shè)置后一般需要半小時左右才能生效):

OK,準備工作完成!

二、不使用任何SDK實現(xiàn)Oauth授權(quán)并實現(xiàn)簡單的發(fā)布微博功能:

創(chuàng)建一個Java項目,編寫如下代碼,具體過程代碼中已寫的很清楚,這里不再做解釋:

注意先修改應(yīng)用ID、應(yīng)用密碼和回調(diào)頁面成你自己的!訪問授權(quán)頁面:

packagecom;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.net.URL;importjava.net.URLConnection;importjava.security.cert.CertificateException;importjava.security.cert.X509Certificate;importjava.util.Scanner;importjavax.net.ssl.X509TrustManager;/***@author劉顯安

* 不使用任何SDK實現(xiàn)新浪微博Oauth授權(quán)并實現(xiàn)發(fā)微薄小Demo

* 日期:2012年11月11日*/

public classTest

{static String clientId="2355065950";//你的應(yīng)用ID

static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的應(yīng)用密碼

static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在應(yīng)用管理中心設(shè)置的回調(diào)頁面

public static void main(String[] args) throwsException

{

testHttps();//測試//第一步:訪問授權(quán)頁面獲取授權(quán)

System.out.println("請打開你的瀏覽器,訪問以下頁面,登錄你的微博賬號并授權(quán):");

System.out.println("https://api.weibo.com/oauth2/authorize?client_id="+clientId+"&response_type=code&redirect_uri="+redirectUri+"&forcelogin=true");//第二步:獲取AccessToken

System.out.println("請將授權(quán)成功后的頁面地址欄中的參數(shù)code:");

String code=newScanner(System.in).next();

getAccessToken(code);//第三步:發(fā)布一條微博

System.out.println("請輸入上面返回的值中accessToken的值:");

String accessToken=newScanner(System.in).next();

updateStatus("發(fā)布微博測試!來自WeiboDemo!", accessToken);

}/*** 測試能否正常訪問HTTPS打頭的網(wǎng)站,*/

public static voidtestHttps()

{try{

trustAllHttpsCertificates();//設(shè)置信任所有的http證書

URL url=new URL("https://api.weibo.com/oauth2/default.html");

URLConnection con=url.openConnection();

con.getInputStream();

System.out.println("恭喜,訪問HTTPS打頭的網(wǎng)站正常!");

}catch(Exception e)

{

e.printStackTrace();

}

}/*** 以Post方式訪問一個URL

*@paramurl 要訪問的URL

*@paramparameters URL后面“?”后面跟著的參數(shù)*/

public static voidpostUrl(String url,String parameters)

{try{

trustAllHttpsCertificates();//設(shè)置信任所有的http證書

URLConnection conn = newURL(url).openConnection();

conn.setDoOutput(true);//這里是關(guān)鍵,表示我們要向鏈接里注入的參數(shù)

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());//獲得連接輸出流

out.write(parameters);

out.flush();

out.close();//到這里已經(jīng)完成了,開始打印返回的HTML代碼

BufferedReader reader = new BufferedReader(newInputStreamReader(conn.getInputStream()));

String line= null;while ((line = reader.readLine()) != null)

{

System.out.println(line);

}

}catch(Exception e)

{

e.printStackTrace();

}

}/*** 獲取AccessToken

*@paramcode 在授權(quán)頁面返回的Code*/

public static voidgetAccessToken(String code)

{

String url="https://api.weibo.com/oauth2/access_token";

String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+

"&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;

postUrl(url, parameters);

}/*** 利用剛獲取的AccessToken發(fā)布一條微博

*@paramtext 要發(fā)布的微博內(nèi)容

*@paramaccessToken 剛獲取的AccessToken*/

public static voidupdateStatus(String text,String accessToken)

{

String url="https://api.weibo.com/2/statuses/update.json";

String parameters="status="+text+"&access_token="+accessToken;

postUrl(url, parameters);

System.out.println("發(fā)布微博成功!");

}/*** 設(shè)置信任所有的http證書(正常情況下訪問https打頭的網(wǎng)站會出現(xiàn)證書不信任相關(guān)錯誤,所以必須在訪問前調(diào)用此方法)

*@throwsException*/

private static void trustAllHttpsCertificates() throwsException

{

javax.net.ssl.TrustManager[] trustAllCerts= new javax.net.ssl.TrustManager[1];

trustAllCerts[0] = newX509TrustManager()

{

@OverridepublicX509Certificate[] getAcceptedIssuers()

{return null;

}

@Overridepublic voidcheckServerTrusted(X509Certificate[] arg0, String arg1)throwsCertificateException

{}

@Overridepublic voidcheckClientTrusted(X509Certificate[] arg0, String arg1)throwsCertificateException

{}

};

javax.net.ssl.SSLContext sc= javax.net.ssl.SSLContext.getInstance("SSL");

sc.init(null, trustAllCerts, null);

javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}

}

訪問授權(quán)頁面:

授權(quán)成功:

發(fā)布微博成功:

控制臺輸出結(jié)果:

三、使用weibo4j-oauth2這個SDK做一個簡單的搶沙發(fā)工具:

1、SDK下載:

下載下來是個包含測試代碼的整個SDK源代碼,可以打包成jar文件方便調(diào)用,我這里打包成名為weibo4j-oauth2.jar的文件,注意先修改config.properties文件中的應(yīng)用id、應(yīng)用密碼、回調(diào)頁面。

2、在項目中導(dǎo)入以下6個包:

3、使用WindowsBuild新建一個Jframe窗體,大體布局如下:

三個按鈕的事件分別如下:

public Date minTime;//最近一條微博的更新時間

/*** 打開授權(quán)頁面*/

public voidopenUrl()

{try{

BareBonesBrowserLaunch.openURL(new Oauth().authorize("code"));

}catch(WeiboException e)

{

e.printStackTrace();

}

}/*** 獲取當前登錄用戶的好友列表*/

public voidgetFriends()

{try{//獲取好友列表

accessToken=newOauth().getAccessTokenByCode(textFieldCode.getText());

Friendships friendships=newFriendships();

friendships.setToken(accessToken.getAccessToken());for(User user:friendships.getFriendsByID(accessToken.getUid()).getUsers())

{

comboBox.addItem(user.getName());

}

}catch(WeiboException e)

{

e.printStackTrace();

}

}/*** 開始監(jiān)控關(guān)注用戶的微博

*@throwsWeiboException*/

public voidstart()

{try{

System.out.println("開始監(jiān)控");

Timeline timeline=newTimeline();

timeline.setToken(accessToken.getAccessToken());

minTime= timeline.getUserTimelineByName(comboBox.getSelectedItem().toString()).getStatuses().get(0).getCreatedAt();

Timer timer=newTimer();

timer.schedule(newTimerTask()

{

@Overridepublic voidrun()

{try{

Timeline timeline=newTimeline();

timeline.setToken(accessToken.getAccessToken());

Status status=timeline.getUserTimelineByName(comboBox.getSelectedItem().toString()).getStatuses().get(0);if(status.getCreatedAt().after(minTime))//如果最新微博的發(fā)表時間在之前相對時間的后面

{

minTime=status.getCreatedAt();

System.out.println("你關(guān)注的用戶更新微博啦");

Comments comments=newComments();

comments.setToken(accessToken.getAccessToken());

comments.createComment("哈哈,我來評論啦!", status.getId());

JOptionPane.showMessageDialog(null, "恭喜,搶沙發(fā)成功!");

}

}catch(WeiboException e)

{

e.printStackTrace();

}

}

},0, 5000);//設(shè)置5秒鐘刷新一次

}catch(WeiboException e)

{

e.printStackTrace();

}

}

項目源代碼下載地址:

整理后的SDK下載地址:

有問題可以聯(lián)系:

總結(jié)

以上是生活随笔為你收集整理的java微博开发_【新手入门篇】新浪微博应用开发之Java入门篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。