聊天消息触发器
特点
聊天消息触发器(SourceEventTaskTrigger)用于监听并响应来自各类消息源的事件。作为触发器,它能够根据配置的条件过滤消息,并将符合条件的消息作为任务触发数据发送给执行器。触发时发送的消息结构为 ITaskEventTriggerData
,包含触发器名称、事件名称以及原始消息数据。
代码配置
根据代码,聊天消息触发器的配置如下:
typescript
const ppagent = new PPAgent({
// ... 其他配置 ...
tasks: [
{
name: "聊天消息触发任务",
triggerName: "source-trigger",
triggerOptions: {
// 必填配置
eventNames: [SourceEventType.CHAT_MESSAGE], // 响应的消息类型,可选值:CHAT_MESSAGE(聊天接收消息)、RESPONSE_MESSAGE(聊天发送消息)、GROUP_NEW_USER(新用户进群)、CUSTOM(自定义事件)
// 以下两项至少配置一个
sourceNames: "wechat", // 按模板名称配置,监听指定类型下所有源的消息
sourceInstanceNames: ["wechat-instance1", "wechat-instance2"], // 按实例名称配置,只监听指定实例的消息
// 可选配置
messageRule: {
// 消息规则,仅当eventNames包含CHAT_MESSAGE时生效
replyAll: false, // 是否回复所有消息
keywords: ["你好", "帮助"], // 关键词匹配
regex: "^/\\w+", // 正则表达式匹配
// 更多规则配置...
}
},
runnerName: "...", // 执行器名称
runnerOptions: {
// ... 执行器配置
}
}
]
});
// 服务器运行请参考 install_code.md 文件
注意事项
eventNames
配置项决定了触发器响应哪些类型的消息事件,实际响应取决于消息源是否支持这些类型的消息发布。sourceNames
和sourceInstanceNames
是"或"的关系,至少需要配置其中一项。前者按消息源类型名称监听,后者按具体实例名称监听。消息规则
messageRule
仅在eventNames
包含CHAT_MESSAGE
类型时生效,用于过滤不符合条件的消息。当使用正则表达式
regex
进行消息匹配时,需确保正则表达式格式正确,否则可能导致过滤失效。