根據上篇認證通過後,可以調用API中的開放介面. 一般我們開發的應用都是要顯示一些企業的微博資訊,如我之前開發的“萬事達卡”顯示萬事達人微博.
首先我們要調用一個介面:http://api.t.sina.com.cn/statuses/user_timeline.json等同於現在的http://api.t.sina.com.cn/statuses/user_timeline.json
現在新浪都改成帶s的介面了,不過感覺還是不帶s好用,網上很多例子都是調用不帶s的,我調用了帶s的不管用,不知道原因,知道的朋友,請您給小弟說下. 這裡我也用不帶是的.
我們要注意一點:
一般我們都是根據screen_name設定查詢微博的.
程式碼片段:
OAuthConsumer authConsumer = new CommonsHttpOAuthConsumer( Oauth.consumerKey, Oauth.consumerSecret); authConsumer.setTokenWithSecret(User.token, User.tokenSecret);這裡也可以把前面我們Oauth認證時候的authConsumer傳過來,就不用這些步驟了, client = new DefaultHttpClient(); httpPost = new HttpPost(USER_TIMELINE_URL); // 把相應的屬性值穿進去 還有很多屬性,page,count等,請查看api. List<NameValuePair> list = new ArrayList<NameValuePair>(); list.add(new BasicNameValuePair("screen_name", "萬事達人")); httpPost.setEntity(new UrlEncodedFormEntity(list, HTTP.UTF_8)); httpPost.getParams().setBooleanParameter( CoreProtocolPNames.USE_EXPECT_CONTINUE, false); authConsumer.sign(httpPost); httpResponse = client.execute(httpPost); if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) { String result = EntityUtils.toString(httpResponse.getEntity()); Log.i(Oauth.TAG, result); }
這樣我們就可以擷取到我們要的微博資訊
展示如下:(顯示的是萬事達人)
正在開發中,樣子很醜,沒有來得及調整,就將就著吧.