最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年11月26日 17:30:09   作者:六仙庵  
這篇文章主要介紹了Java使用新浪微博API開發(fā)微博應用的基本方法,文中還給出了一個不使用任何SDK實現(xiàn)Oauth授權并實現(xiàn)簡單的發(fā)布微博功能的實現(xiàn)方法,需要的朋友可以參考下

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

20151126172241979.jpg (600×312)

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

20151126172311674.jpg (600×420)

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

20151126172332485.jpg (346×373)

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

20151126172350677.jpg (600×365)

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

不使用任何SDK實現(xiàn)Oauth授權并實現(xiàn)簡單的發(fā)布微博功能:
創(chuàng)建一個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實現(xiàn)新浪微博Oauth授權并實現(xiàn)發(fā)微薄小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("請將授權成功后的頁面地址欄中的參數(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();//設置信任所有的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
   * @param url 要訪問的URL
   * @param parameters URL后面“?”后面跟著的參數(shù)
   */
  public static void postUrl(String url,String parameters)
  {
    try
    {
      trustAllHttpsCertificates();//設置信任所有的http證書
      URLConnection conn = new URL(url).openConnection();
      conn.setDoOutput(true);// 這里是關鍵,表示我們要向鏈接里注入的參數(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 在授權頁面返回的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ā)布的微博內容
   * @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ā)布微博成功!");
  }
  /**
   * 設置信任所有的http證書(正常情況下訪問https打頭的網(wǎng)站會出現(xiàn)證書不信任相關錯誤,所以必須在訪問前調用此方法)
   * @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());
  }
}

訪問授權頁面:

20151126172812746.png (613×340)

授權成功:

20151126172829414.png (690×349)

發(fā)布微博成功:

20151126172843215.png (580×107)

控制臺輸出結果:

20151126172901747.png (996×256)

相關文章

  • 通過spring boot 設置tomcat解決 post參數(shù)限制問題

    通過spring boot 設置tomcat解決 post參數(shù)限制問題

    這篇文章主要介紹了通過spring boot 設置tomcat解決 post參數(shù)限制問題,需要的朋友可以參考下
    2019-05-05
  • Java中對象初始化順序的詳細介紹

    Java中對象初始化順序的詳細介紹

    在Java中,類裝載器把一個類裝入Java虛擬機中,要經(jīng)過三個步驟來完成:裝載、鏈接和初始化,網(wǎng)上關于Java中對象初始化順序的文章很多,這篇文章我們將詳細介紹Java中對象初始化順序。有需要的可以參考學習。
    2016-10-10
  • SpringMvc導出Excel實例代碼

    SpringMvc導出Excel實例代碼

    本篇文章主要介紹了SpringMvc導出Excel實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java9中接口的私有方法詳解

    Java9中接口的私有方法詳解

    印象中Java?接口就沒有論述私有方法這回事。既然?Java?9?添加了這項特性,那么,應該就有它的用途,我們一起來看看?Java?9?中的接口的私有方法是什么樣的吧
    2023-04-04
  • java實現(xiàn)英文翻譯程序

    java實現(xiàn)英文翻譯程序

    這篇文章主要為大家詳細介紹了java實現(xiàn)英文翻譯程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 聊聊Lombok中的@Builder注解使用教程

    聊聊Lombok中的@Builder注解使用教程

    @Builder注解的作用主要是用來生成對象,并且可以為對象鏈式賦值。接下來通過本文給大家介紹Lombok中的@Builder注解使用教程,感興趣的朋友一起看看吧
    2021-11-11
  • SpringBoot集成kaptcha驗證碼

    SpringBoot集成kaptcha驗證碼

    這篇文章主要為大家詳細介紹了SpringBoot集成kaptcha驗證碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Java文件拒絕訪問問題及解決

    Java文件拒絕訪問問題及解決

    這篇文章主要介紹了Java文件拒絕訪問問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取

    SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取

    SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取,感興趣的小伙伴們可以參考一下
    2016-05-05
  • IDEA中使用Docker Compose容器編排的實現(xiàn)

    IDEA中使用Docker Compose容器編排的實現(xiàn)

    這篇文章主要介紹了IDEA中使用Docker Compose容器編排的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

元谋县| 邵武市| 连江县| 东乌珠穆沁旗| 雷波县| 阳城县| 新郑市| 新营市| 上高县| 大渡口区| 杨浦区| 铁岭县| 南陵县| 夏津县| 合山市| 莱州市| 星子县| 孝昌县| 栾川县| 宁津县| 敖汉旗| 綦江县| 调兵山市| 汨罗市| 女性| 吉隆县| 常宁市| 杭州市| 云南省| 郓城县| 玉门市| 太康县| 开化县| 屏东县| 新沂市| 古丈县| 吴堡县| 云梦县| 资中县| 肥西县| 遂川县|