【发布时间】:2021-08-03 18:56:02
【问题描述】:
我正在开发一个可跟踪工作区中团队活动的 Slack 机器人。该机器人被添加为多个渠道的集成,除了其中一个之外,所有渠道都是私有的。每当有消息发送到公共通道时,都会调用处理消息的回调函数,但当消息发送到私有通道时不会调用该函数。
这是我的主要方法。
public static void main(String[] args) throws Exception {
init();
app.message(Pattern.compile(".*", Pattern.DOTALL), (payload, ctx) -> onMessage(payload,ctx));
try {
log.info("Server started");
System.out.println("Server started");
socketModeApp.start();
}
catch(Exception e){
log.error(e.toString());
}
}
这是 onMessage 方法。
static Response onMessage(EventsApiPayload<MessageEvent> payload, EventContext ctx) {
app.executorService().execute(() -> {
try {
MessageEvent event = payload.getEvent();
String text = event.getText();
String userid = event.getUser();
String channelId = event.getChannel();
String ts = event.getTs().substring(0,10);
log.info(userid+" sent a message on "+channelId);
// code to track user activity.
}
catch(Exception e) {
log.error(e.toString());
}
});
return ctx.ack();
}
因此,当消息发送到公共频道时,会在日志文件中创建一个条目,但在私人频道中发送时不会发生同样的情况。即使机器人被添加到两者中。
【问题讨论】: