一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法

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

2020-03-04 13:07六仙庵 JAVA教程

這篇文章主要介紹了Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法,文中還給出了一個不使用任何SDK實(shí)現(xiàn)Oauth授權(quán)并實(shí)現(xiàn)簡單的發(fā)布微博功能的實(shí)現(xiàn)方法,需要的朋友可以參考下

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

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

如果是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下載,這步操作有問題也請回家種田。

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

所謂的sdk并非是sdk(個人覺得名稱有點(diǎn)誤導(dǎo)),而是一個可運(yùn)行的工程,下載完畢之后解壓 ,并導(dǎo)入到eclipse,可以看到兩個目錄 src和example
src是新浪微博的部分
example是實(shí)例,接口的demo
4、第四步配置參數(shù),找到src目錄下的config.properties
前三個參數(shù)需要自己配置 為第二步里說過的應(yīng)用參數(shù)里的參數(shù)
后面的都是默認(rèn)的不需要改
前三個參數(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)頁  這是一個你自己填寫的URL 指向的是你自己服務(wù)器 當(dāng)然在開發(fā)階段我們可以使用任何URL 只要能夠讓我們了解OAuth授權(quán)的流程就好了 這里我們就輸入一個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

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

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

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

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

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

注意先修改應(yīng)用ID、應(yīng)用密碼和回調(diào)頁面成你自己的!訪問授權(quá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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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方式訪問一個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)錯誤,所以必須在訪問前調(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)頁面:

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

授權(quán)成功:

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

發(fā)布微博成功:

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美人与牲动交xxx 欧美人妖另类性hd 欧美人人干 | 国产精品一区二区三区久久 | 操比视频 | 视频在线观看一区二区三区 | 羞羞答答免费人成黄页在线观看国产 | 无限资源在线观看播放 | 国产99视频精品免视看7 | 亚洲精品卡1卡二卡3卡四卡 | 免费导航 | 无套日出白浆在线播放 | 2020年国产精品午夜福利在线观看 | 亚洲看片lutube在线入口 | 午夜国产精品视频在线 | 毛片免费观看的视频 | 国产精品va在线观看不 | 成人夜视频寂寞在线观看 | 亚洲天堂伦理 | 污小说| 無码一区中文字幕少妇熟女网站 | 久久精品一区二区免费看 | 亚洲美日韩| 全是女性放屁角色的手游 | 五月婷婷丁香在线视频 | 欧美成人另类人妖 | aa一级护士医生毛片 | 久久99r66热这里有精品 | 俄罗斯美女尿尿 | 884hutv四虎永久7777 | 日本熟hdx| 国产美女久久精品香蕉69 | 娇小XXXXX第一次出血 | 亚洲波霸 | 四虎精品影视 | 亚洲人成综合在线播放 | 成人福利网站 | 亚洲精品免费在线观看 | 免费精品在线视频 | 国产精品视频在线观看 | 太大了轻点阿受不了小说h 四色6677最新永久网站 | 四虎精品成人免费视频 | 男人使劲躁女人小视频 |