【问题标题】:Slack Events are not being triggered for private channels私人频道不会触发 Slack 事件
【发布时间】: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();
}

因此,当消息发送到公共频道时,会在日志文件中创建一个条目,但在私人频道中发送时不会发生同样的情况。即使机器人被添加到两者中。

【问题讨论】:

    标签: java slack slack-api


    【解决方案1】:

    所以,我知道出了什么问题。我在 Slack API 仪表板的 OAuth & Permissions 选项卡下为机器人提供了 OAuth 范围以读取来自私人频道的消息。

    我还需要将 groups:history 权限添加到 Event Subscriptions 下的 Subscribe To Bot Events 下拉菜单中> 选项卡。执行此操作后,将为在私人频道中发送的消息触发事件。

    【讨论】:

      猜你喜欢
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 2017-09-02
      • 2019-07-25
      • 1970-01-01
      • 2021-10-20
      • 2021-04-06
      相关资源
      最近更新 更多