2016-11-26 12 views
0

Я пытаюсь использовать jslack: https://github.com/seratch/jslack RTM-библиотека для отправки и получения сообщений. Но я не уверен, почему rtmClient.sendMessage("Hello WOrld"); не отправляет сообщение slack bot, хотя он может успешно подключиться к боту. Пожалуйста, дайте мне знать, где я ошибаюсь.обмениваться сообщениями с использованием библиотеки RTM от jslack

 JsonParser jsonParser = new JsonParser(); 
     try (RTMClient rtmClient = new Slack().rtm("xoxwerq-12632550058135")) { 

      rtmClient.addMessageHandler((message) -> { 
       JsonObject json = jsonParser.parse(message).getAsJsonObject(); 
       if (json.get("type") != null) { 
        log.info("Handled type: {}", json.get("type").getAsString()); 
        //System.out.println("working"); 
       } 
       }); 

       RTMMessageHandler handler2 = (message) -> { 
        log.info("Hello!"); 
        //Logger.debug("client connected to the server: {}", wssUri); 

       // System.out.println("got it"); 
        }; 

       //rtmClient.addMessageHandler(RTMMessageHandler messageHandler); 

        rtmClient.addMessageHandler(handler2); 

        // must connect within 30 seconds after issuing wss endpoint 
        try { 
        rtmClient.connect(); 
        rtmClient.sendMessage("Hello WOrld"); 
        Thread.sleep(5000); 

        System.out.println("Bot started!!!!!!"); 
        //rtmClient.addMessageHandler(handler2); 
        //Thread.sleep(5000); 

       } catch (DeploymentException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

       rtmClient.removeMessageHandler(handler2); 
     }` 
+0

Я надеюсь, что это не ваш реальный маркер :) Если это пожалуйста, отключите его и удалить его с этого поста. –

+0

Возможно, вы захотите добавить какие ошибки/исключения вы получите (если есть). –

+0

Нет, это не мой реальный токен ... –

ответ

0

Я не уверен, что метод sendMessage используется. Я пробовал, и он не отправляет сообщение в бот-канал.

Вот что я использую для публикации сообщения на конкретном канале. В случае ответа на бот, я просто получить идентификатор канала из сообщения бота:

private void postMessage(String channel, String message) { 
     try { 
      // https://slack.com/api/chat.postMessage 
      ChatPostMessageResponse postResponse = 
        slack.methods().chatPostMessage(ChatPostMessageRequest.builder().token(token) 
          .channel(channel).text(message).build()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    }