所有指南
Webhooks

Webhooks 指南

将 Fast Memo 连接到外部服务来自动化您的工作流程。当笔记、分类或数据发生变化时接收实时通知。

  • 发布于
  • 阅读约 5 分钟

什么是 Webhooks?

Fast Memo 中的 Webhooks 是发送到您配置的 URL 的出站 HTTP POST 通知。当应用中发生特定事件时,Fast Memo 会向您的端点发送一个包含事件详情的 JSON 有效负载。

  • HTTP POST 请求

    每个 Webhook 通过 HTTP POST 向您提供的 URL 发送 JSON 有效负载。不需要身份验证头。

  • 14 个可用触发器

    从 14 种不同事件中选择:笔记创建、更新、删除、分类更改、数据导入/导出等。

  • 物联网和自动化

    将 Fast Memo 连接到 IFTTT、Zapier、n8n、Home Assistant 或您自己的服务器来构建自定义自动化。

如何设置

  1. 打开设置

    进入 Fast Memo 的设置,在高级部分找到 Webhooks 选项。

  2. 选择触发器

    您将看到所有 14 个可用触发器的列表。每个触发器可以独立配置自己的 URL。

  3. 输入 URL 并启用

    在文本字段中输入您的端点 URL。然后点击复选框启用触发器。POST 标签确认 HTTP 方法。

  4. 完成 — 自动触发

    每当应用中发生相应事件时,Fast Memo 将向您的 URL 发送一个包含事件描述的 JSON 正文的 POST 请求。

可用触发器

每个触发器都有自己的 URL 和启用/禁用开关。您可以根据需要配置任意数量。

触发器类别操作
添加文本笔记笔记note/addTextNote
添加待办笔记笔记note/addTodoNote
添加看板笔记笔记note/addKanbanNote
添加代码笔记笔记note/addCodeNote
更新笔记笔记note/updateNote
临时删除笔记note/temporaryDeleteNote
删除笔记笔记note/deleteNote
恢复笔记笔记note/restoreNote
创建分类分类category/createCategory
更新分类分类category/updateCategory
删除分类分类category/deleteCategory
导出数据数据generic/export
导入数据数据generic/import
清除数据数据generic/wipeData

有效负载参考

每个 Webhook 通过 HTTP POST 发送 JSON 正文。以下是每个触发器的确切有效负载格式。所有有效负载都包含设为 true 的 "success" 字段和 "action" 字符串。

笔记创建

POST — 添加文本笔记
{
  "success": true,
  "action": "note/addTextNote",
  "id": "abc123",
  "type": "text",
  "title": "My Note",
  "text": "<p>Hello world</p>",
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "book", "name": "Personal" }
}
POST — 添加待办笔记
{
  "success": true,
  "action": "note/addTodoNote",
  "id": "abc123",
  "type": "todo",
  "title": "Shopping List",
  "list": [
    { "id": "item1", "text": "Buy milk", "checked": false },
    { "id": "item2", "text": "Buy eggs", "checked": true }
  ],
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "cart", "name": "Shopping" }
}
POST — 添加看板笔记
{
  "success": true,
  "action": "note/addKanbanNote",
  "id": "abc123",
  "type": "kanban",
  "title": "Sprint Board",
  "columns": [
    {
      "id": "col1",
      "title": "To Do",
      "cards": [
        { "id": "card1", "text": "Design UI" }
      ]
    },
    {
      "id": "col2",
      "title": "Done",
      "cards": []
    }
  ],
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "briefcase", "name": "Work" }
}
POST — 添加代码笔记
{
  "success": true,
  "action": "note/addCodeNote",
  "id": "abc123",
  "type": "code",
  "title": "API Handler",
  "tabs": [
    {
      "id": "tab1",
      "title": "index.ts",
      "code": "console.log('hello')",
      "language": "typescript"
    }
  ],
  "activeTabId": "tab1",
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "code", "name": "Dev" }
}

笔记生命周期

POST — 更新笔记(单个)
{
  "success": true,
  "action": "note/updateNote",
  "id": "abc123",
  "type": "text",
  "title": "Updated Note",
  "text": "<p>New content</p>",
  "createdAt": 1713700000,
  "updatedAt": 1713800000,
  "important": true,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "book", "name": "Personal" }
}
POST — 更新笔记(批量)
{
  "success": true,
  "action": "note/updateNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"],
  "property": "important"
}
POST — 临时删除(单个)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "id": "abc123"
}
POST — 临时删除(批量)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — 删除笔记(单个)
{
  "success": true,
  "action": "note/deleteNote",
  "id": "abc123"
}
POST — 删除笔记(批量)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — 删除笔记(全部)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "all"
}
POST — 恢复笔记(单个)
{
  "success": true,
  "action": "note/restore",
  "id": "abc123"
}
POST — 恢复笔记(批量)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — 恢复笔记(全部)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "all"
}

分类操作

POST — 创建分类
{
  "success": true,
  "action": "category/createCategory",
  "iconId": "book",
  "name": "Personal"
}
POST — 更新分类
{
  "success": true,
  "action": "category/updateCategory",
  "prevCategory": { "iconId": "book", "name": "Personal" },
  "nextCategory": { "iconId": "star", "name": "Favorites" }
}
POST — 删除分类
{
  "success": true,
  "action": "category/deleteCategory",
  "iconId": "book"
}

数据操作

POST — 导出数据
{
  "success": true,
  "action": "generic/export"
}
POST — 导入数据
{
  "success": true,
  "action": "generic/import"
}
POST — 清除数据
{
  "success": true,
  "action": "generic/wipeData",
  "cloud": false
}

限制和说明

  • HTTP 方法始终为 POST — 无法更改为 GET、PUT 或其他方法。
  • 每个请求有 5 秒超时。如果您的端点在 5 秒内没有响应,请求将被丢弃。
  • 无重试 — 如果请求失败,将被静默丢弃。
  • 每个触发器一个 URL — 您无法为同一事件配置多个端点。
  • 无自定义头或身份验证令牌 — 仅发送标准 JSON content-type 头。
  • 该功能处于 BETA 阶段。有效负载和行为可能在未来版本中更改。