# 步骤五：响应用户操作

在用户对消息卡片进行操作之后，飞书会将用户的操作记录推送到消息卡片请求网址中。你可以解析该用户行为，然后更新消息卡片响应用户操作。本文以JavaSDK处理卡片内容为例，介绍如何在服务端处理卡片回调事件。

## 操作步骤

1. 接收用户操作请求。

用户在点击卡片操作时，飞书会向你配置的消息卡片回调地址发送 HTTP POST 请求，请求体为 JSON 格式。参数详情可参见[消息卡片回传交互（旧）](https://open.feishu.cn/document/ukTMukTMukTM/uYzM3QjL2MzN04iNzcDN/configuring-card-callbacks/card-callback-structure)。

请求结构体示例：

```json
    {
      "open_id": "ou_sdfimx9948345", // 卡片操作用户的 open_id
      "user_id": "eu_sd923r0sdf5", // 卡片操作用户的 user_id
      "open_message_id": "om_abcdefg1234567890", // 卡片消息的唯一 id
      "tenant_key": "d32004232", // 卡片消息归属的租户id
      "token": "c-xxxxx", // 更新卡片用的 Token（凭证）
      "action": {
        "value": { // 回传参数值
          "key": "value"
        },
        "tag": "button" // 交互组件标识
      }
    }
	```

2. 在代码中解析用户操作，并响应更新后的卡片内容。
   * **实时更新**：如果你需要直接反馈用户操作，可以在接收请求后直接返回新的卡片内容。响应回调的结构体和 SDK 调用方式，参见[消息卡片回传交互（旧）](https://open.feishu.cn/document/ukTMukTMukTM/uYzM3QjL2MzN04iNzcDN/configuring-card-callbacks/card-callback-structure)。

* **延时更新**：如果你不需要实时更新卡片内容或者处理用户操作需要较长时间，那么你可以先返回`"{}"`字符串，然后在合适的时机调用[延时更新消息卡片](https://open.feishu.cn/document/ukTMukTMukTM/uMDO1YjLzgTN24yM4UjN)或[更新应用发送的消息卡片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/patch)接口更新卡片。
* 使用延时更新时，你需要在3秒内以`HTTP 200`状态码响应该请求，并在响应时设置 HTTP Body 为字符串`"{}"`。
* 如果卡片的更新时机不是由消息卡片的交互组件触发（比如用户在企业自建的审批系统内，而不是消息卡片上完成审批操作），可以调用[更新应用发送的消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/patch)接口更新卡片。

