指南Webhook

Webhook 类似于一种通知机制,可用于构建与 CKBox 的集成。当触发指定事件时,CKBox 会向配置的 URL 发送 HTTP POST 请求。

Webhook 可用于在 CKBox 和另一个系统之间同步数据或构建通知系统。例如,借助 Webhook,系统可以通过电子邮件向用户通知对资产所做的更改。

# 使用 Webhook 的优势

在将您的应用程序与 CKBox 集成时使用 Webhook 可以使集成更加可靠。Webhook 通过立即通知外部系统有关特定事件(例如文件上传、资产修改或删除)的信息,实现了实时通信。这使集成系统能够保持同步,从而促进对更改的及时响应。因此,它增强了灵活性、效率和可扩展性。

# 示例

# 数据同步

Webhook 可以用作文件上传、修改或删除等事件的通知系统。这可以改善与其他系统的同步。例如,集成系统可以遵循这些通知来同步外部系统中的文件夹树。

# 触发其他操作

Webhook 可以响应 webhook 检测到的特定事件来启动其他操作或流程。例如,在收到文件上传通知后,webhook 可以自动触发流程,例如 AI 分析、更新元数据或通知相关利益相关者。

# 跟踪用户更改

Webhook 允许检测用户执行的文件上传、修改或删除等操作。通过利用 Webhook,应用程序可以及时通知外部系统这些更改,从而实现高效的同步并促进对应用程序生态系统中用户活动的全面跟踪。

# 安全

从 CKBox 发送到配置的 webhook URL 的每个 webhook 请求都包含一个签名和一个时间戳。因此,服务器收到的每个请求都可以被检查和确认其来自 CKBox 且未被修改。

有关签名请求验证过程的更多信息,请参见请求签名指南。

# Webhook 顺序

请记住,Webhook 事件是异步发送的。因此,您不应该依赖接收到的事件的顺序。

如果您执行的操作对顺序敏感,您应该在处理这些事件的端点添加另一层验证。

# Webhook 格式

CKBox 发送的每个 webhook 请求都具有以下属性

  • event – 触发 webhook 的事件的名称。
  • environment_id – 环境的 ID。
  • sent_at – 发送指定 webhook 的日期。
  • payload – webhook 的有效负载。它包含有关特定事件的数据。

# 示例

以下是 CKBox 发送的样本 webhook 请求示例。它由上传到 ID 为 user-1 的环境的文件触发。

{
  environment_id: '6afdca1ba1e38969dea1',
  event: 'asset.uploaded',
  payload: {
    workspace_id: '80e839331c4d8827c474',
    asset: {
      id: 'Ta1xyyjKGbvF',
      name: 'image',
      extension: 'jpeg',
      url: {{fileUrl}},
      images_urls: {{imageUrls}},
      mime_type: 'image/jpeg',
      category_id: '0055659e-464c-4ebf-bc4b-7b690fbdfb72',
      size_in_bytes: 21104,
      tags: [],
      metadata: {
        description: 'File description',
        custom_attributes: {}
      }
    },
    user: { id: 'user-1', role: 'User' }
  },
  sent_at: '2024-02-16T15:45:45.190Z'
}

# 后续步骤