Java應用新浪微博API開辟微博運用的根本辦法。本站提示廣大學習愛好者:(Java應用新浪微博API開辟微博運用的根本辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java應用新浪微博API開辟微博運用的根本辦法正文
新浪微博API如今應用比擬普遍,做一個完全的開辟流程Demo
1、第一步注冊,就不多說了,注冊帳號和成為開辟者帳號,這步操作不會的話請你立時砸失落電腦拔失落網線回家耕田。
2、第二步創立運用,開辟者帳號創立好了,翻開新浪微博開辟平台: http://open.weibo.com
下面菜單欄點擊最初一個 治理中間
假如是web的運用的話選擇創立網站接入的運用,然後依據新浪微博的請求balabalabala本身去弄定
運用創立終了。點擊運用跳轉頁面,點擊檢查運用參數,可以看到運用的相干參數,這些參數將會在第四步用到。
3、第三步下載sdk,回到頂部的菜單欄,點擊 文檔 ,再點擊右邊菜單欄sdk,選擇java sdk,然後balabala下載,這步操作有成績也請回家耕田。
所謂的sdk並不是是sdk(小我認為稱號有點誤導),而是一個可運轉的工程,下載終了以後解壓 ,並導入到eclipse,可以看到兩個目次 src和example
src是新浪微博的部門
example是實例,接口的demo
4、第四步設置裝備擺設參數,找到src目次下的config.properties
前三個參數須要本身設置裝備擺設 為第二步裡說過的運用參數裡的參數
前面的都是默許的不須要改
前三個參數設置裝備擺設以下
client_ID為App Key
client_SERCRET為App Secret
redirect_URI為 OAuth2.0受權的回調URL 運用信息>高等信息>OAuth2.0 受權設置上面的受權回調頁 這是一個你本身填寫的URL 指向的是你本身辦事器 固然在開辟階段我們可使用任何URL 只需可以或許讓我們懂得OAuth受權的流程就行了 這裡我們就輸出一個http://www.百度.com 撤消受權回調頁也是如斯 留意這裡的URL的字符串必需是分歧
5、第五步獲得AccessToken,正常情形下AccessToken的獲得是須要經由過程OAuth2.0認證的,然則為了更簡略我先說一種簡略的辦法。前面再講OAuth2.0
照樣選擇最下面的菜單欄 文檔>API>API測試對象
選擇創立的運用 點擊獲得AccessToken 上面的文本框裡就是我們要的AccessToken
6、第六步先做一個接話柄例
去微博API裡隨意找一個已有權限的接口,
我隨意找了一個 獲得用戶宣布的微博 statuses/user_timeline 做測試用的
點擊這個接口檢查這個接口概況,可以檢查到接口的每一個傳入參數和前往參數 這個無需多說。
不應用任何SDK完成Oauth受權並完成簡略的宣布微博功效:
創立一個Java項目,編寫以下代碼,詳細進程代碼中已寫的很清晰,這裡不再做說明:
留意先修正運用ID、運用暗碼和回調頁面成你本身的!拜訪受權頁面:
package com; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Scanner; import javax.net.ssl.X509TrustManager; /** * @author 劉顯安 * 不應用任何SDK完成新浪微博Oauth受權並完成發菲薄小Demo * 日期:2012年11月11日 */ public class Test { static String clientId="2355065950";//你的運用ID static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的運用暗碼 static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在運用治理中間設置的回調頁面 public static void main(String[] args) throws Exception { testHttps();//測試 //第一步:拜訪受權頁面獲得受權 System.out.println("請翻開你的閱讀器,拜訪以下頁面,登錄你的微博賬號並受權:"); System.out.println("https://api.weibo.com/oauth2/authorize?client_id="+clientId+"&response_type=code&redirect_uri="+redirectUri+"&forcelogin=true"); //第二步:獲得AccessToken System.out.println("請將受權勝利後的頁面地址欄中的參數code:"); String code=new Scanner(System.in).next(); getAccessToken(code); //第三步:宣布一條微博 System.out.println("請輸出下面前往的值中accessToken的值:"); String accessToken=new Scanner(System.in).next(); updateStatus("宣布微博測試!來自WeiboDemo!", accessToken); } /** * 測試可否正常拜訪HTTPS打頭的網站, */ public static void testHttps() { try { trustAllHttpsCertificates();//設相信任一切的http證書 URL url=new URL("https://api.weibo.com/oauth2/default.html"); URLConnection con=url.openConnection(); con.getInputStream(); System.out.println("祝賀,拜訪HTTPS打頭的網站正常!"); } catch (Exception e) { e.printStackTrace(); } } /** * 以Post方法拜訪一個URL * @param url 要拜訪的URL * @param parameters URL前面“?”前面隨著的參數 */ public static void postUrl(String url,String parameters) { try { trustAllHttpsCertificates();//設相信任一切的http證書 URLConnection conn = new URL(url).openConnection(); conn.setDoOutput(true);// 這裡是症結,表現我們要向鏈接裡注入的參數 OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 取得銜接輸入流 out.write(parameters); out.flush(); out.close(); // 到這裡曾經完成了,開端打印前往的HTML代碼 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } } /** * 獲得AccessToken * @param code 在受權頁面前往的Code */ public static void getAccessToken(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宣布一條微博 * @param text 要宣布的微博內容 * @param accessToken 剛獲得的AccessToken */ public static void updateStatus(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("宣布微博勝利!"); } /** * 設相信任一切的http證書(正常情形下拜訪https打頭的網站會湧現證書不信賴相干毛病,所以必需在拜訪前挪用此辦法) * @throws Exception */ private static void trustAllHttpsCertificates() throws Exception { javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1]; trustAllCerts[0] = new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {} @Override public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {} }; javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, null); javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } }
拜訪受權頁面:
受權勝利:
宣布微博勝利:
掌握台輸入成果: