| 步骤 | 说明 |
|---|---|
| 选择事件订阅方式 | 事件订阅方式分为 使用长连接接收事件 和 将事件发送至开发者服务器 两种,你可以根据需要自行选择任一订阅方式。 如果你已经集成飞书 SDK,且正在开发的是企业自建应用,推荐你使用更加安全高效的长连接订阅方式。 使用长连接接收事件 方式是飞书 SDK 内提供的能力,你可以通过集成飞书 SDK 与开放平台建立一条 WebSocket 全双工通道(你的服务器需要能够访问公网)。后续当应用订阅的事件发生时,开放平台会通过该通道向你的服务器发送消息。详细配置说明参见使用长连接接收事件。 将事件发送至开发者服务器 方式是传统的 Webhook 模式,该方式需要你提供用于接收事件消息的服务器公网地址。后续当应用订阅的事件发生时,开放平台会向服务器的公网地址发送 HTTP POST 请求,请求内包含事件数据。详细配置说明参见将事件发送至开发者服务器。 |
| 添加所需事件 | 完成事件订阅方式配置后,即可为应用添加所需订阅的事件,并发布应用使配置生效。具体操作参见添加事件。事件相关的概念介绍(包括事件订阅身份、事件版本、事件结构以及事件推送机制),参见下文事件概念。 |
| 接收事件 | 根据不同的事件订阅方式接收事件: 使用长连接接收事件 方式已经封装了鉴权逻辑,无需进行数据解密与验签操作,直接接收来自开放平台的事件请求即可。 将事件发送至开发者服务器 方式需要你根据应用的加密策略进行安全校验,如果是加密事件,需要先解密事件,再解析事件详情。具体操作参见接收事件。 |

| 订阅身份类型 | 描述 | 场景示例 |
|---|---|---|
| 应用身份订阅 | 以 tenant_access_token 订阅事件,不需要用户登录,直接以应用身份获取事件数据,可获取的数据范围由应用自身的数据权限范围决定。 | 假设有一个应用名为 “My bot”,该应用 订阅云文档事件 时,如果以 tenant_access_token 订阅,则仅能订阅 “My bot” 作为拥有者或者管理员的文档变更,无法感知其他文档变更。 |
| 用户身份订阅 | 以 user_access_token 订阅事件,需要用户登录并授权应用,可获取的事件数据由用户本人可见的数据权限范围决定。 | 假设有一个应用名为 “My bot”,该应用 订阅云文档事件 时,如果以 user_access_token 订阅,该 token 代表的用户是 “李健”,则仅能订阅 “李健” 作为拥有者或者管理员的文档变更,无法感知其他文档变更。 |
通讯录变更v1.0 和员工离职 v2.0 事件,当有一个员工离职时,应用会收到两个相同的员工离职事件。| 通讯录变更v1.0 | 员工离职 v2.0 |
|---|---|
![]() | ![]() |

ts 字段表示事件发送的时间,一般近似于事件发生的时间。uuid 字段是事件的唯一标识。token 字段即 Verification Token。event 结构体记录的是事件的详细信息,不同事件的信息不同。其中,通过 event.type 字段,可以判断事件类型。{
"ts": "1502199207.7171419",
"uuid": "bc447199585340d1f3728d26b1c0297a",
"token": "41a9425ea7df4536a7623e38fa321bae",
"type": "event_callback",
"event": {
"app_id": "cli_9c8609450f78d102",
"chat_id": "oc_26b66a5eb603162b849f91bcd8815b20",
"operator": {
"open_id": "ou_2d2c0399b53d06fd195bb393cd1e38f2",
"user_id": "gfa21d92"
},
"tenant_key": "736588c9260f175c",
"type": "p2p_chat_create",
"user": {
"name": "user_name",
"open_id": "ou_7dede290d6a27698b969a7fd70ca53da",
"user_id": "gfa21d92"
}
}
}schema 字段表示事件的版本。v1.0 版本的事件,无此字段。header.event_id 字段是事件的唯一标识。header.token 字段即 Verification Token。header.create_time 字段表示事件发送的时间,一般近似于事件发生的时间。header.event_type 字段表示事件类型。event 结构体记录的是事件的详细信息,不同事件的信息不同。{
"schema": "2.0",
"header": {
"event_id": "f7984f25108f8137722bb63cee927e66",
"token": "066zT6pS4QCbgj5Do145GfDbbagCHGgF",
"create_time": "1603977298000000",
"event_type": "contact.user_group.created_v3",
"tenant_key": "xxxxxxx",
"app_id": "cli_xxxxxxxx",
},
"event":{
}
}uuid 字段判断事件唯一性。event_id 字段判断事件唯一性。