国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法

2019-11-26 14:48:47
字體:
供稿:網(wǎng)友

新浪微博API現(xiàn)在運(yùn)用比較廣泛,做一個(gè)完整的開發(fā)流程Demo
1、第一步注冊,就不多說了,注冊帳號以及成為開發(fā)者帳號,這步操作不會的話請你馬上砸掉電腦拔掉網(wǎng)線回家種田。
2、第二步創(chuàng)建應(yīng)用,開發(fā)者帳號創(chuàng)建好了,打開新浪微博開發(fā)平臺: http://open.weibo.com
   上面菜單欄點(diǎn)擊最后一個(gè) 管理中心

20151126172241979.jpg (600×312)

如果是web的應(yīng)用的話選擇創(chuàng)建網(wǎng)站接入的應(yīng)用,然后根據(jù)新浪微博的要求balabalabala自己去搞定
  應(yīng)用創(chuàng)建完畢。點(diǎn)擊應(yīng)用跳轉(zhuǎn)頁面,點(diǎn)擊查看應(yīng)用參數(shù),可以看到應(yīng)用的相關(guān)參數(shù),這些參數(shù)將會在第四步用到。
3、第三步下載sdk,回到頂部的菜單欄,點(diǎn)擊 文檔 ,再點(diǎn)擊左邊菜單欄sdk,選擇java sdk,然后balabala下載,這步操作有問題也請回家種田。

20151126172311674.jpg (600×420)

所謂的sdk并非是sdk(個(gè)人覺得名稱有點(diǎn)誤導(dǎo)),而是一個(gè)可運(yùn)行的工程,下載完畢之后解壓 ,并導(dǎo)入到eclipse,可以看到兩個(gè)目錄 src和example
src是新浪微博的部分
example是實(shí)例,接口的demo
4、第四步配置參數(shù),找到src目錄下的config.properties
前三個(gè)參數(shù)需要自己配置 為第二步里說過的應(yīng)用參數(shù)里的參數(shù)
后面的都是默認(rèn)的不需要改
前三個(gè)參數(shù)配置如下
client_ID為App Key
client_SERCRET為App Secret
redirect_URI為 OAuth2.0授權(quán)的回調(diào)URL 應(yīng)用信息>高級信息>OAuth2.0 授權(quán)設(shè)置下面的授權(quán)回調(diào)頁  這是一個(gè)你自己填寫的URL 指向的是你自己服務(wù)器 當(dāng)然在開發(fā)階段我們可以使用任何URL 只要能夠讓我們了解OAuth授權(quán)的流程就好了 這里我們就輸入一個(gè)http://www.baidu.com  取消授權(quán)回調(diào)頁也是如此 注意這里的URL的字符串必須是一致
5、第五步獲取AccessToken,正常情況下AccessToken的獲取是需要通過OAuth2.0認(rèn)證的,但是為了更簡單我先說一種簡單的方法。后面再講OAuth2.0
還是選擇最上面的菜單欄 文檔>API>API測試工具
選擇創(chuàng)建的應(yīng)用 點(diǎn)擊獲取AccessToken 下面的文本框里就是我們要的AccessToken

20151126172332485.jpg (346×373)

6、第六步先做一個(gè)接口實(shí)例
去微博API里隨便找一個(gè)已有權(quán)限的接口,
我隨便找了一個(gè) 獲取用戶發(fā)布的微博  statuses/user_timeline 做測試用的

20151126172350677.jpg (600×365)

點(diǎn)擊這個(gè)接口查看這個(gè)接口詳情,可以查看到接口的每個(gè)傳入?yún)?shù)以及返回參數(shù) 這個(gè)無需多說。

不使用任何SDK實(shí)現(xiàn)Oauth授權(quán)并實(shí)現(xiàn)簡單的發(fā)布微博功能:
創(chuàng)建一個(gè)Java項(xiàng)目,編寫如下代碼,具體過程代碼中已寫的很清楚,這里不再做解釋:

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

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實(shí)現(xiàn)新浪微博Oauth授權(quán)并實(shí)現(xiàn)發(fā)微薄小Demo * 日期:2012年11月11日 */public class Test{  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) throws Exception  {    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=new Scanner(System.in).next();    getAccessToken(code);    //第三步:發(fā)布一條微博    System.out.println("請輸入上面返回的值中accessToken的值:");    String accessToken=new Scanner(System.in).next();    updateStatus("發(fā)布微博測試!來自WeiboDemo!", accessToken);  }  /**   * 測試能否正常訪問HTTPS打頭的網(wǎng)站,   */  public static void testHttps()  {    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方式訪問一個(gè)URL   * @param url 要訪問的URL   * @param parameters URL后面“?”后面跟著的參數(shù)   */  public static void postUrl(String url,String parameters)  {    try    {      trustAllHttpsCertificates();//設(shè)置信任所有的http證書      URLConnection conn = new URL(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(new InputStreamReader(conn.getInputStream()));      String line = null;      while ((line = reader.readLine()) != null)      {        System.out.println(line);      }    }    catch (Exception e)    {      e.printStackTrace();    }  }  /**   * 獲取AccessToken   * @param code 在授權(quán)頁面返回的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發(fā)布一條微博   * @param text 要發(fā)布的微博內(nèi)容   * @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("發(fā)布微博成功!");  }  /**   * 設(shè)置信任所有的http證書(正常情況下訪問https打頭的網(wǎng)站會出現(xiàn)證書不信任相關(guān)錯(cuò)誤,所以必須在訪問前調(diào)用此方法)   * @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());  }}

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

20151126172812746.png (613×340)

授權(quán)成功:

20151126172829414.png (690×349)

發(fā)布微博成功:

20151126172843215.png (580×107)

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

20151126172901747.png (996×256)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涟水县| 大理市| 瑞昌市| 攀枝花市| 和平区| 麦盖提县| 启东市| 平谷区| 湘潭市| 新丰县| 永昌县| 宕昌县| 綦江县| 德庆县| 北流市| 确山县| 宣化县| 马边| 清原| 唐河县| 大洼县| 泾阳县| 永清县| 克东县| 青铜峡市| 无棣县| 泾源县| 边坝县| 台南县| 库伦旗| 绥棱县| 洪泽县| 蓝田县| 加查县| 株洲市| 姚安县| 长顺县| 盖州市| 上饶市| 淮滨县| 海宁市|