自動釋出新浪微博java
準備給JiveJdon增加一個關注提交微博功能,一個使用者關注某個話題或作者,如果有更新,將更新內容提交其微博上,新浪微博使用OAuth認證,一般中間需要一個介面輸入使用者名稱和密碼,因為是關注後自動啟用提交,所以由程式自動提交,當然微博的使用者和密碼當使用者決定關注話題時需要輸入,並儲存在jivejdon系統中,這是有一些風險。
在新浪微博原來的weibo案例中增加一些程式碼,直接執行WebAuth這個Application即可,前提是:
1. 將Weibo中的CONSUMER_KEY CONSUMER_SECRET替換成你註冊新浪微博應用後給你的值。
2. 下面程式碼中替換你的新浪微博的使用者名稱和密碼。
在新浪微博原來的weibo案例中增加一些程式碼,直接執行WebAuth這個Application即可,前提是:
1. 將Weibo中的CONSUMER_KEY CONSUMER_SECRET替換成你註冊新浪微博應用後給你的值。
2. 下面程式碼中替換你的新浪微博的使用者名稱和密碼。
package weibo4j.examples; package weibo4j.examples; import java.io.StringReader; import java.util.HashMap; import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import weibo4j.Status; import weibo4j.Weibo; import weibo4j.WeiboException; import weibo4j.http.AccessToken; import weibo4j.http.HttpClient; import weibo4j.http.PostParameter; import weibo4j.http.RequestToken; import weibo4j.http.Response; public class WebOAuth { public static String CONSUMER_KEY = "2299894210";//你的新浪應用key 預設是"jivejdon"的 public static String CONSUMER_SECRET = "191b3411c5f126176b98e1be26b02233"; public static String SINA_USERID = "你的新浪微博使用者名稱"; public static String SINA_PASSWD = "你的新浪微博密碼"; public static RequestToken request(String backUrl) { try { System.setProperty("weibo4j.oauth.consumerKey", CONSUMER_KEY); System.setProperty("weibo4j.oauth.consumerSecret", CONSUMER_SECRET); Weibo weibo = new Weibo(); RequestToken requestToken = weibo.getOAuthRequestToken(backUrl); System.out.println("Got request token."); System.out.println("Request token: " + requestToken.getToken()); System.out.println("Request token secret: " + requestToken.getTokenSecret()); return requestToken; } catch (Exception e) { e.printStackTrace(); return null; } } public static AccessToken requstAccessToken(RequestToken requestToken, String verifier) { try { System.setProperty("weibo4j.oauth.consumerKey", CONSUMER_KEY); System.setProperty("weibo4j.oauth.consumerSecret", CONSUMER_SECRET); Weibo weibo = new Weibo(); AccessToken accessToken = weibo.getOAuthAccessToken(requestToken.getToken(), requestToken.getTokenSecret(), verifier); System.out.println("Got access token."); System.out.println("access token: " + accessToken.getToken()); System.out.println("access token secret: " + accessToken.getTokenSecret()); return accessToken; } catch (Exception e) { e.printStackTrace(); return null; } } public static void update(AccessToken access, String content) { try { Weibo weibo = new Weibo(); weibo.setToken(access.getToken(), access.getTokenSecret()); Status status = weibo.updateStatus(content); System.out.println("Successfully updated the status to [" + status.getText() + "]."); } catch (WeiboException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { RequestToken requestToken = request("xml"); HttpClient http = new HttpClient(); PostParameter[] postParameters = new PostParameter[] { new PostParameter("oauth_callback", "xml"), new PostParameter("userId", SINA_USERID), new PostParameter("passwd", SINA_PASSWD) }; Response response = http.get(requestToken.getAuthorizationURL()); response = http.post(requestToken.getAuthorizationURL(), postParameters); Weibo weibo = new Weibo(); System.out.print("www" + response.asString()); StringReader reader = new StringReader(response.asString()); InputSource inputSource = new InputSource(reader); Map map = readXML(inputSource); AccessToken accessToken = requstAccessToken(requestToken, (String) map.get("oauth_verifier")); update(accessToken, "測試一下"); } public static Map readXML(InputSource inputSource) { Map map = new HashMap(); try { DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse(inputSource); // normalize text representation doc.getDocumentElement().normalize(); System.out.println("Root element of the doc is " + doc.getDocumentElement().getNodeName()); map.put("oauth_token", getValue(doc, "oauth_token")); map.put("oauth_verifier", getValue(doc, "oauth_verifier")); System.out.println(" oauth_token=" + getValue(doc, "oauth_token")); System.out.println(" oauth_token=" + getValue(doc, "oauth_verifier")); } catch (Exception err) { System.out.println(" " + err.getMessage()); } return map; } public static String getValue(Document doc, String name) { String ret = ""; NodeList listOfPersons = doc.getElementsByTagName(name); for (int s = 0; s < listOfPersons.getLength(); s++) { Node firstPersonNode = listOfPersons.item(s); Element firstPersonElement = (Element) firstPersonNode; ret = firstPersonElement.getTextContent(); }// end of for loop with s var return ret; } } <p class="indent"> |
[該貼被banq於2011-07-09 17:13修改過]
[該貼被admin於2011-07-09 17:17修改過]
[該貼被admin於2011-07-24 14:46修改過]
相關文章
- 資料:新浪微博企業微博釋出時間規律研究
- 新浪微博平臺自動化運維演進之路運維
- 新浪微博APIAPI
- 新浪阿里釋出微博淘寶版 籌劃社交購物2.0時代阿里
- iOS 仿新浪微博iOS
- 第32天:微博釋出動態
- jenkins自動釋出java程式碼JenkinsJava
- 新浪微博分享不跳轉
- iOS高仿新浪微博iOS
- 讓ubuntu支援新浪微博Ubuntu
- 新浪微博動態 RSA 分析圖文+登入
- Win10系統下新浪微博影片總是自動播放怎麼辦Win10
- 新浪微博圖床架構解析圖床架構
- 微博釋出 7月手機微博品牌榜出爐!
- Win10系統下新浪微博視訊總是自動播放怎麼辦Win10
- Python實現微博爬蟲,爬取新浪微博Python爬蟲
- 新浪微博API生成短連結API
- 轉發新浪微博程式猿心得
- jQuery仿新浪微博資訊展播效果jQuery
- 使用python呼叫新浪微博介面Python
- 新浪微博私信,即時聊天介面研究
- JavaScript仿新浪微博搜尋框功能JavaScript
- 分享到QQ空間、新浪微博、騰訊微博的程式碼!(收藏)
- iOS自動整合打包釋出iOS
- 新浪微博移動網頁端手勢驗證介面破解流程網頁
- 新浪微博財報:2015年Q2新浪微博淨營收1.078億美元 同比增39%營收
- 新浪微博資料:截至2010年10月底新浪微博使用者數已達5000萬
- 新浪微博同比扭虧廣告佔營收81.54%營收
- 微博“大資料掘金”:新浪向左 騰訊向右大資料
- 新浪微博,阿里巴巴囊中物?阿里
- 新浪微博財報:2014年Q1新浪微博營收為6750萬美元 同比增長161%營收
- 利用 GitHub Action 自動釋出 DockerGithubDocker
- 使用 PowerShell 自動化 CloudServices 釋出Cloud
- 新浪微博股價今年上漲近兩倍 讓鼻祖Twitter無地自容
- 微博首席架構師楊衛華:新浪微博技術架構分析架構
- 新浪微博技術架構分析-微博首席架構師楊衛華架構
- 新浪微博財報圖解:2015年Q1新浪微博營收9630萬美元 同比增長43%圖解營收
- Scrapy框架的使用之Scrapy爬取新浪微博框架