程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java應用新浪微博API開辟微博運用的根本辦法

Java應用新浪微博API開辟微博運用的根本辦法

編輯:關於JAVA

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());
  }
}

拜訪受權頁面:

受權勝利:

宣布微博勝利:

掌握台輸入成果:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved