根据上篇认证通过后,可以调用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);
}
这样我们就可以获取到我们要的微博信息
展示如下:(显示的是万事达人)
正在开发中,样子很丑,没有来得及调整,就将就着吧.