新浪微博開放平台雖提供 Java SDK (weibo4j) 及 Demo,但文檔與代碼常不一致,且 OAuth 流程涉及多角色交互,初學者極易迷失。本文梳理核心流程,提供可運行的完整整合方案。
核心憑證:App Key (Consumer Key)、App Secret (Consumer Secret)、Request Token、Access Token。流程包含:獲取 Request Token → 用戶授權 → 獲取 Access Token → 調用 API。
https://api.weibo.com/oauth/request_tokenhttps://api.weibo.com/oauth/authorizehttps://api.weibo.com/oauth/access_tokenpublic class WebOAuth {
private Weibo weibo;
public WebOAuth() {
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
weibo = new Weibo();
}
// 獲取 Request Token
public RequestToken getRequestToken(String callbackUrl) { ... }
// 獲取 Access Token
public AccessToken getAccessToken(RequestToken requestToken, String verifier) { ... }
// 發布微博
public void update(AccessToken access, String content) { ... }
}
request.jsp:生成授權鏈接,保存 Request Token 至 Session,重定向至微博授權頁。callback.jsp:接收 oauth_verifier,換取 Access Token 存入 Session,跳轉發布頁。writeWeibo.html:輸入內容提交至 updateWeibo.jsp。updateWeibo.jsp:調用 WebOAuth.update() 發布。commons-httpclient-3.1.jar 及打包後的 weibo4j.jar。callback.jsp 域名需與微博應用設置的回調域一致(本地測試可用 localhost)。掌握 OAuth 舞步,鑰匙在於理清 Token 流轉與 URL 重定向。此 Demo 可作為微博登入、分享功能的基礎模板擴展。