---
title: "触发事件"
description: "可以启动活动的四种 Facebook 和 Instagram 事件，每种事件带入图中的内容，以及 AFP 会忽略哪些事件。"
canonical: https://docs.afp.monster/zh-cn/reference/trigger-events
updated: 2026-08-19
pageType: reference
---

四种平台事件可以启动活动：Facebook 主页帖子上的评论、Instagram 帖子上的评论、Facebook Messenger 消息，以及 Instagram 私信。每个事件都会与其所属已连接主页上的活跃活动进行匹配，每个当前图版本中持有匹配触发节点的活动都会启动一次执行记录。按钮点击和主页自己发布的评论永远不会启动活动。

## 概览

| 事件 | 触发节点 | 活动平台 | 是否启动执行记录 |
|---|---|---|---|
| Facebook 主页帖子上的评论 | `trigger_comment` | Facebook | 是，该主页上每个匹配的活跃活动各一次 |
| Instagram 帖子上的评论 | `trigger_comment` | Instagram | 是，该主页上每个匹配的活跃活动各一次 |
| Facebook Messenger 消息 | `trigger_dm` | Facebook | 是，当消息携带文本且该人没有正在运行的执行记录时 |
| Instagram 私信 | `trigger_dm` | Instagram | 是，当消息携带文本且该人没有正在运行的执行记录时 |
| 私信内的按钮点击 | 无 | 两者 | 否——它会恢复一个等待回复的执行记录 |
| 一个执行记录正在等待的评论串上的回复 | 无 | 两者 | 否——它会恢复该执行记录，不再进行任何活动匹配 |

## 事件路由

```d2 title="Which arriving comments and DMs are ignored, which resume a waiting run, and which start an execution"
direction: down
arrives: "评论或私信到达\n某个已连接主页"
skippable: "是主页自己发布的，\n已发送私信的回声，\n已移除或隐藏的评论，\n还是没有文本的私信？" {shape: diamond}
ignored: "忽略"
awaiting: "该人在该主页上是否有\n正在等待回复的执行记录？" {shape: diamond}
resumes: "该执行记录恢复，并将\n该文本作为回复。\n不进行任何活动匹配"
campaign: "该主页上是否有活跃活动，\n其当前图版本持有\n匹配的触发节点？" {shape: diamond}
starts: "每个匹配的活动\n各启动一次执行记录"
arrives -> skippable
skippable -> ignored: 是
skippable -> awaiting: 否
awaiting -> resumes: 是
awaiting -> campaign: 否
campaign -> ignored: 否
campaign -> starts: 是
```

## Facebook 主页帖子上的评论

- **触发节点：** `trigger_comment`
- **活动平台：** Facebook
- **携带内容：** 评论本身、其所在帖子、评论文本、评论者姓名、任何附带的照片或视频，以及回复时的父评论

已连接 Facebook 主页帖子上的一条评论，会与绑定到该主页的每个活跃活动进行匹配。触发器 `post_scope` 设置为 `specific` 的活动，只匹配 `post_id` 指定帖子上的评论；范围为 `all` 的触发器匹配该主页任意帖子上的评论。

帖子范围是评论触发器唯一的过滤条件。触发节点不包含任何关键词配置，所以文本过滤发生在图的更下游，即执行记录到达的第一个 `condition` 节点。

没有文本的评论——一个贴纸，或一个没有配文的附件——会以占位文本 `{{sticker}}` 到达，所以条件节点始终有确定的内容可以匹配。

## Instagram 帖子上的评论

- **触发节点：** `trigger_comment`
- **活动平台：** Instagram
- **携带内容：** 评论本身、其所在媒体、评论文本、评论者用户名，以及回复时的父评论

Instagram 评论遵循与 Facebook 评论相同的路径，并使用相同的触发节点。活动必须绑定到该评论所属的 Instagram 商业账户；活动的平台由其目标主页推导得出，所以将其绑定到 Instagram 账户，才使其有资格接收 Instagram 事件。

在 Instagram 路径上恢复一个等待中执行记录的评论，如果携带的是媒体而不是文本，会以占位文本 `{{media}}` 到达。

## Facebook Messenger 消息

- **触发节点：** `trigger_dm`
- **活动平台：** Facebook
- **携带内容：** 发送者和消息文本

一条传入的 Messenger 消息首先会与该人在该主页上已经运行的执行记录进行核对。一个正在运行的执行记录会将该消息作为回复接收。如果没有正在运行的执行记录，AFP 会在该主页上查找当前图以 `trigger_dm` 开头的活跃活动，并为每个匹配项启动一次执行记录。

`trigger_dm` 节点没有帖子范围，也没有文本过滤器，所以任何携带文本的私信都会启动该主页上每个活跃的 `trigger_dm` 活动。它们中哪些会继续发送内容，由各自的条件节点决定。

## Instagram 私信

- **触发节点：** `trigger_dm`
- **活动平台：** Instagram
- **携带内容：** 发送者和消息文本

Instagram 私信要么直接解析到一个已连接主页（对于单独连接的 Instagram 商业账户），要么通过该账户所链接的 Facebook 主页解析。未连接到 AFP 的 Instagram 账户的事件会被丢弃。

## 一个事件带入图中的内容

| 值 | 评论事件 | 私信事件 | 使用它的场景 |
|---|---|---|---|
| 发送者 | 是 | 是 | 该条执行记录中每个 `send_dm` 的接收者，以及 `add_tag` 和 `remove_tag` 所应用的联系人 |
| 消息文本 | 评论文本 | 消息文本 | `condition` 匹配，包括关键词列表 |
| 发送者姓名 | 是 | 是 | 个性化 `send_dm`、`reply_comment` 或 `send_comment` 的文本 |
| 触发评论 | 是 | 否 | `reply_comment`、`hide_comment` 和 `delete_comment`，它们操作该评论 |
| 评论所在的帖子 | 是 | 否 | 触发器的 `post_scope` 检查 |
| 附带的照片或视频 | 是 | 否 | `condition` 上的媒体过滤器，例如 `filter_images` |
| 已连接主页及其平台 | 是 | 是 | 决定该条执行记录的操作在哪里发布 |

恢复一个等待中执行记录的回复携带文本但不带附件。因此开启了图片过滤器的 `condition` 不会匹配纯文本回复，一个"等待图片"分支会将文本回复路由到 **No Match** 输出。

私信事件不携带评论也不携带帖子，这就是为什么触发器为 `trigger_dm` 的活动不能添加评论操作。

## 不会启动活动的事件

| 事件 | 会发生什么 |
|---|---|
| 平台上被移除或隐藏的评论 | 被忽略。只处理新评论。 |
| 不是评论的主页活动 | 被忽略。 |
| 主页自己发布的评论，包括活动发布的评论 | 被忽略，所以 `reply_comment` 或 `send_comment` 不能重新触发自己的活动。 |
| 主页发送的私信的回声 | 被忽略，所以 `send_dm` 不能恢复自己的执行记录。 |
| 没有文本的私信——只有图片、贴纸或附件 | 被忽略。它既不会启动执行记录，也不会恢复等待中的执行记录。 |
| 私信中的按钮点击 | 以按钮标签作为回复文本恢复一个等待中的执行记录；如果该人没有正在运行的执行记录，则什么都不会发生。 |
| 同一活动的执行记录仍在运行时，来自同一人的第二个匹配事件 | 被跳过。一个人不能同时进行同一活动的两条执行记录。 |
| 针对未连接到 AFP 的主页的事件 | 被丢弃。 |
| 针对其所有者没有活跃订阅的主页的事件 | 没有活动运行。该评论会作为订阅错误记录在活动 feed 中。 |
| 针对访问令牌已失效的主页的事件 | 没有活动运行。该评论会被记录为重新登录错误，直到该主页的访问权限被续期。 |
| 针对不活跃活动的事件，或匹配图的旧保存版本中触发器的事件 | 不会匹配。只有活跃活动的当前版本会启动执行记录。 |
| 针对没有已保存图的活跃活动的事件，或其图没有触发节点的事件 | 不会匹配。仅仅启用并不能使活动具备资格。 |

## 主页订阅

只有当一个已连接主页的事件订阅已在平台注册并通过验证时，事件才会到达 AFP。在该握手成功之前，无论活动如何构建，该主页上的评论和私信都不会产生任何结果。

在一个主页上创建第一个活动会订阅该主页，所以不需要单独执行订阅步骤。更改活动的目标主页也会订阅新主页，删除一个主页上的最后一个活动会再次移除该订阅。

该订阅覆盖主页帖子上的评论活动、传入消息，以及这些消息内的按钮点击——所有四种触发事件都通过它到达。

停用一个活动不会移除订阅。当该主页上的所有活动都不活跃时，事件仍会持续到达，但不会匹配任何内容，这就是为什么重新启用一个活动会立即开始工作。

## 说明

- 该主页上每个匹配的活动都会启动自己的执行记录。两个关键词重叠的活跃活动会针对同一条评论各自运行。
- 匹配针对的是事件到达那一刻已保存的图版本，且执行记录在其整个生命周期中都固定在该版本上。
- 触发器的 `unique_per_user` 设置会缩小同一人的重复事件中哪些会启动活动。[节点类型](/zh-cn/reference/node-types) 介绍了它具体限制什么。
- 在一个执行记录正在等待的串内以回复形式发布的评论，会恢复该执行记录并到此为止——该评论不会再提供给该主页上的任何其他活动。

## 相关

- [执行状态](/zh-cn/reference/execution-states) — 一个事件启动的执行记录会发生什么，以及它如何结束。
- [节点类型](/zh-cn/reference/node-types) — `trigger_comment`、`trigger_dm` 以及每个其他节点的完整配置。
- [关键词匹配规则](/zh-cn/reference/keyword-matching) — 执行记录到达条件节点后，事件携带的文本如何被比较。
- [测试和调试活动](/zh-cn/guides/test-and-debug-campaigns) — 如何判断这些事件中的哪一个到达了你的活动。
