@Override public SlackPersona.SlackPresence getPresence(SlackPersona persona) { HttpClient client = getHttpClient(); HttpPost request = new HttpPost("https://slack.com/api/users.getPresence"); List<NameValuePair> nameValuePairList = new ArrayList<>(); nameValuePairList.add(new BasicNameValuePair("token", authToken)); nameValuePairList.add(new BasicNameValuePair("user", persona.getId())); try { request.setEntity(new UrlEncodedFormEntity(nameValuePairList, "UTF-8")); HttpResponse response = client.execute(request); String jsonResponse = CharStreams.toString(new InputStreamReader(response.getEntity().getContent())); LOGGER.debug("PostMessage return: " + jsonResponse); JSONObject resultObject = parseObject(jsonResponse); // quite hacky need to refactor this SlackUserPresenceReply reply = (SlackUserPresenceReply) SlackJSONReplyParser.decode(resultObject, this); if (!reply.isOk()) { return SlackPersona.SlackPresence.UNKNOWN; } String presence = (String) resultObject.get("presence"); if ("active".equals(presence)) { return SlackPersona.SlackPresence.ACTIVE; } if ("away".equals(presence)) { return SlackPersona.SlackPresence.AWAY; } } catch (Exception e) { // TODO : improve exception handling e.printStackTrace(); } return SlackPersona.SlackPresence.UNKNOWN; }
private void postSlackCommand( Map<String, String> params, String command, SlackMessageHandleImpl handle) { HttpClient client = getHttpClient(); HttpPost request = new HttpPost(SLACK_API_HTTPS_ROOT + command); List<NameValuePair> nameValuePairList = new ArrayList<>(); for (Map.Entry<String, String> arg : params.entrySet()) { nameValuePairList.add(new BasicNameValuePair(arg.getKey(), arg.getValue())); } try { request.setEntity(new UrlEncodedFormEntity(nameValuePairList, "UTF-8")); HttpResponse response = client.execute(request); String jsonResponse = CharStreams.toString(new InputStreamReader(response.getEntity().getContent())); LOGGER.debug("PostMessage return: " + jsonResponse); SlackReply reply = SlackJSONReplyParser.decode(parseObject(jsonResponse), this); handle.setReply(reply); } catch (Exception e) { // TODO : improve exception handling e.printStackTrace(); } }