public MessagePublishResult  publishMessage(String accessToken, String message,
    		String url, String filename,Map<String,String> params)
    {
    	MessagePublishResult result = new MessagePublishResult();

        Map<String,String> data = new HashMap<String,String>();
        data.put("access_token", accessToken);
        
        if(params != null && params.size() > 0) {
            data.putAll(params);
        }
        String resp = null;
        if (filename != null) {
            data.put("description", message+' '+url);
            Map<String,String>file = new HashMap<String,String>();
            file.put("file" , filename);
            resp = this.response(HTTPClientUtil.POST_METHOD,
            		RENREN_PUBLISH_MESSAGE_WITH_PIC,data,null,file);
        } else {

        	data.put("targetUrl" , url);
            data.put("message",  message);
            data.put("description" , message);
            data.put("title" , "消息");
            resp = this.response(HTTPClientUtil.POST_METHOD,RENREN_PUBLICSH_MESSAGE_TEXT,data);

        }
        if (resp != null && !"".equals(resp)) {
            if (logger.isDebugEnabled()) {
                logger.debug("publish:" + resp);
            }
            
            Object obj = JSON.parse(resp);
    		JSONObject msg = (JSONObject)obj;
    		
    		JSONObject error = msg.getJSONObject("error");
            if (error != null) {
                result.setRv(ERROR_PUBLISH_MESSAGE);
                result.setErrmsg(error.getString("message"));
            } else {
                result.setRv(ERROR_SUCCESS);
            }
        } else {
            result.setRv(ERROR_NETWORK_CALL);
        }
        return result;
    }