我怎样才能防止我的机器人回复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"));
//...
}
//...
}
所以逻辑是这样的:
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"));
//...
}
//...
}