我怎样才能防止我的机器人回复Slack中的每条消息?

本文关键字:Slack 消息 回复 机器人 我的 | 更新日期: 2023-09-27 18:16:49

当一个ms bot被集成到slack时,它在回复直接消息时工作得很好,但是如果bot被添加到一个频道,它会回复每一个发布到频道的消息,而不仅仅是像@myCustomBot '这是我的问题'

是否有可能将传入的消息过滤到bot中,以便它只回复专门针对bot的频道消息?

到目前为止,它使用的是新bot项目的基本控制器动作:

public async Task<HttpResponseMessage> Post([FromBody] Activity activity)
{
    if (activity.Type == ActivityTypes.Message)
    {
        ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
        connector.Conversations.ReplyToActivityAsync(activity.CreateReply("hi there"));
        //...
    }
    //...
}

我怎样才能防止我的机器人回复Slack中的每条消息?

所以逻辑是这样的:

1)测试人们何时直接称呼bot;

2)根据通道区分。

public async Task<HttpResponseMessage> Post([FromBody] Activity activity)
{
    if (activity.Type == ActivityTypes.Message)
    {
        if (activity.ChannelId === "slack") {
            if (activity.Text.ToLower().StartsWith("@myCustomBot") {
                return Request.CreateResponse(HttpStatusCode.OK); //quit
            }
        }
        else if (activity.ChannelId === "facebook") {
            //similar check, and if true, then:
                //return Request.CreateResponse(HttpStatusCode.OK);
        }
        //otherwise, keep going:
        ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
        connector.Conversations.ReplyToActivityAsync(activity.CreateReply("hi there"));
        //...
    }
    //...
}