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());
}
}
拜訪受權頁面:
受權勝利:
宣布微博勝利:
掌握台輸入成果: