zoukankan      html  css  js  c++  java
  • Android新浪微博获取评论信息、发表评论、转发微博等

     首先前面一节中说过,获取用户的微博信息,这里简单介绍下获取微博的评论信息,以及对微博进行评论,转发微博等.

         OAuth认证,这里就不多说了,

         我说名一下接口:

         获取微博的评论列表接口: http://api.t.sina.com.cn/statuses/comments.json 

        

          我们这里需要把微博ID做为参数请求,这个ID我们可以根据前面一节解析用户的微博信息得到.

         

         对微博进行评论接口:http://api.t.sina.com.cn/statuses/comment.json

        

          我们需要把微博的id,与我们的评论comment做为参数进行请求.

          微博转发接口:http://api.t.sina.com.cn/statuses/repost.json

         

        这里我们只需要微博的id.

       

        下面是实现部分代码:

       

    1. /*** 
    2.      * 获取用户的评论 
    3.      *  
    4.      * @param requstURL 
    5.      *            请求url 
    6.      * @param blog_id 
    7.      *            微博id 
    8.      * @return JSON(String) 
    9.      * @throws OAuthMessageSignerException 
    10.      * @throws OAuthExpectationFailedException 
    11.      * @throws OAuthCommunicationException 
    12.      * @throws ClientProtocolException 
    13.      * @throws IOException 
    14.      * @throws JSONException 
    15.      */  
    16.     public static String getJSONBlogsComments(String requstURL, String blog_id)  
    17.             throws OAuthMessageSignerException,  
    18.             OAuthExpectationFailedException, OAuthCommunicationException,  
    19.             ClientProtocolException, IOException, JSONException {  
    20.         String jsonArray = null;  
    21.         HttpResponse httpResponse;  
    22.         HttpClient client = new DefaultHttpClient();  
    23.         HttpPost httpPost = new HttpPost(requstURL);  
    24.         getTokenAndTokenSecret();  
    25.         CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(  
    26.                 Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);  
    27.         authConsumer.setTokenWithSecret(token, tokenSecret);  
    28.   
    29.         List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
    30.         nameValuePairs  
    31.                 .add(new BasicNameValuePair(Constant.weiBoTag.id, blog_id));  
    32.         httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));  
    33.         httpPost.getParams().setBooleanParameter(  
    34.                 CoreProtocolPNames.USE_EXPECT_CONTINUE, false);  
    35.   
    36.         authConsumer.sign(httpPost);  
    37.         httpResponse = client.execute(httpPost);  
    38.   
    39.         if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {  
    40.             jsonArray = EntityUtils.toString(httpResponse.getEntity());  
    41.         }  
    42.         Log.i(Constant.TAG, jsonArray);  
    43.         return jsonArray;  
    44.     }  
    45.   
    46.         /*** 
    47.      * 评论一条微博 
    48.      *  
    49.      * @throws IOException 
    50.      * @throws ClientProtocolException 
    51.      * @throws OAuthCommunicationException 
    52.      * @throws OAuthExpectationFailedException 
    53.      * @throws OAuthMessageSignerException 
    54.      */  
    55.     public static boolean CommentBlogByID(String blog_ID, String comment,  
    56.             String requstURL) throws ClientProtocolException, IOException,  
    57.             OAuthMessageSignerException, OAuthExpectationFailedException,  
    58.             OAuthCommunicationException {  
    59.         HttpResponse httpResponse;  
    60.         HttpClient client = new DefaultHttpClient();  
    61.         HttpPost httpPost = new HttpPost(requstURL);  
    62.         getTokenAndTokenSecret();  
    63.         CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(  
    64.                 Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);  
    65.         authConsumer.setTokenWithSecret(token, tokenSecret);  
    66.   
    67.         List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
    68.         nameValuePairs  
    69.                 .add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));  
    70.         nameValuePairs.add(new BasicNameValuePair(Constant.weiBoTag.comment,  
    71.                 comment));  
    72.   
    73.         httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));  
    74.         httpPost.getParams().setBooleanParameter(  
    75.                 CoreProtocolPNames.USE_EXPECT_CONTINUE, false);  
    76.         authConsumer.sign(httpPost);  
    77.   
    78.         httpResponse = client.execute(httpPost);  
    79.   
    80.         if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {  
    81.             return true;  
    82.         }  
    83.         return false;  
    84.     }  
    85.   
    86.     /**** 
    87.      * 微博转发 
    88.      *  
    89.      * @param blog_ID 
    90.      *            微博id 
    91.      * @param requstURL 
    92.      *            请求URL 
    93.      * @return 
    94.      * @throws OAuthMessageSignerException 
    95.      * @throws OAuthExpectationFailedException 
    96.      * @throws OAuthCommunicationException 
    97.      * @throws ClientProtocolException 
    98.      * @throws IOException 
    99.      */  
    100.     public static boolean TranspondBlog(String blog_ID, String requstURL)  
    101.             throws OAuthMessageSignerException,  
    102.             OAuthExpectationFailedException, OAuthCommunicationException,  
    103.             ClientProtocolException, IOException {  
    104.         HttpResponse httpResponse;  
    105.         HttpClient client = new DefaultHttpClient();  
    106.         HttpPost httpPost = new HttpPost(requstURL);  
    107.         getTokenAndTokenSecret();  
    108.         CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(  
    109.                 Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);  
    110.         authConsumer.setTokenWithSecret(token, tokenSecret);  
    111.   
    112.         List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
    113.         nameValuePairs  
    114.                 .add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));  
    115.   
    116.         httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));  
    117.         httpPost.getParams().setBooleanParameter(  
    118.                 CoreProtocolPNames.USE_EXPECT_CONTINUE, false);  
    119.         authConsumer.sign(httpPost);  
    120.   
    121.         httpResponse = client.execute(httpPost);  
    122.   
    123.         if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {  
    124.             return true;  
    125.         }  
    126.         return false;  
    127.     }  
    /***
    	 * 获取用户的评论
    	 * 
    	 * @param requstURL
    	 *            请求url
    	 * @param blog_id
    	 *            微博id
    	 * @return JSON(String)
    	 * @throws OAuthMessageSignerException
    	 * @throws OAuthExpectationFailedException
    	 * @throws OAuthCommunicationException
    	 * @throws ClientProtocolException
    	 * @throws IOException
    	 * @throws JSONException
    	 */
    	public static String getJSONBlogsComments(String requstURL, String blog_id)
    			throws OAuthMessageSignerException,
    			OAuthExpectationFailedException, OAuthCommunicationException,
    			ClientProtocolException, IOException, JSONException {
    		String jsonArray = null;
    		HttpResponse httpResponse;
    		HttpClient client = new DefaultHttpClient();
    		HttpPost httpPost = new HttpPost(requstURL);
    		getTokenAndTokenSecret();
    		CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
    				Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
    		authConsumer.setTokenWithSecret(token, tokenSecret);
    
    		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    		nameValuePairs
    				.add(new BasicNameValuePair(Constant.weiBoTag.id, blog_id));
    		httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, 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()) {
    			jsonArray = EntityUtils.toString(httpResponse.getEntity());
    		}
    		Log.i(Constant.TAG, jsonArray);
    		return jsonArray;
    	}
    
    		/***
    	 * 评论一条微博
    	 * 
    	 * @throws IOException
    	 * @throws ClientProtocolException
    	 * @throws OAuthCommunicationException
    	 * @throws OAuthExpectationFailedException
    	 * @throws OAuthMessageSignerException
    	 */
    	public static boolean CommentBlogByID(String blog_ID, String comment,
    			String requstURL) throws ClientProtocolException, IOException,
    			OAuthMessageSignerException, OAuthExpectationFailedException,
    			OAuthCommunicationException {
    		HttpResponse httpResponse;
    		HttpClient client = new DefaultHttpClient();
    		HttpPost httpPost = new HttpPost(requstURL);
    		getTokenAndTokenSecret();
    		CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
    				Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
    		authConsumer.setTokenWithSecret(token, tokenSecret);
    
    		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    		nameValuePairs
    				.add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));
    		nameValuePairs.add(new BasicNameValuePair(Constant.weiBoTag.comment,
    				comment));
    
    		httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, 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()) {
    			return true;
    		}
    		return false;
    	}
    
    	/****
    	 * 微博转发
    	 * 
    	 * @param blog_ID
    	 *            微博id
    	 * @param requstURL
    	 *            请求URL
    	 * @return
    	 * @throws OAuthMessageSignerException
    	 * @throws OAuthExpectationFailedException
    	 * @throws OAuthCommunicationException
    	 * @throws ClientProtocolException
    	 * @throws IOException
    	 */
    	public static boolean TranspondBlog(String blog_ID, String requstURL)
    			throws OAuthMessageSignerException,
    			OAuthExpectationFailedException, OAuthCommunicationException,
    			ClientProtocolException, IOException {
    		HttpResponse httpResponse;
    		HttpClient client = new DefaultHttpClient();
    		HttpPost httpPost = new HttpPost(requstURL);
    		getTokenAndTokenSecret();
    		CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
    				Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
    		authConsumer.setTokenWithSecret(token, tokenSecret);
    
    		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    		nameValuePairs
    				.add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));
    
    		httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, 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()) {
    			return true;
    		}
    		return false;
    	}
    

          其实主要是Oauth认证,我们只需要相应的Token 和Tokensecret,这些接口没有什么,相信大家看过新浪API都会的.

         

         下面是实现后的效果:

                            

                  获取用微博的评论列表                                            获取用户的评论列表

                         

                  微博评论界面                                                   刚评论的信息

            

                                       转发的微博.

       

    Tale、车车
  • 相关阅读:
    天正暖通2013版安装包附带注册机下载
    你妈安好
    利用FLASH和XML做炫酷图片相册
    空调冷凝水管径选用原则
    知足常乐
    曾经的真三国无双
    Deep Exploration安装破解汉化
    Revit模型文件输出为3D PDF格式的方法
    Adobe Acrobat 9 Pro Extended简体中文版安装破解汉化教程
    Keep reading
  • 原文地址:https://www.cnblogs.com/taleche/p/4237902.html
Copyright © 2011-2022 走看看