Token导航 LogoToken导航TokenDH.com
研究检索需要联网clawhub未标认证来源可访问clear审计提醒

openclaw-notion-apiOpenClaw Notion API 搜索

Agent Skill

用于处理 Notion 页面、数据库、工作区内容和结构化记录。它适合让 Agent 查询知识库、整理页面内容、创建记录或把外部信息同步到 Notion。使用时需要确认集成是否已被授权到目标页面或数据库,并区分读取、追加和覆盖更新;涉及批量写入或修改数据库属性时,应先核对字段名称、属性类型和目标页面。

总安装

11,407

周安装

485

GitHub Stars

公开资料未说明

下载量

3,996
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openclaw-notion-api(OpenClaw Notion API 搜索)
来源仓库:https://github.com/ionepub/openclaw-notion-api
安装命令:
openclaw skills install openclaw-notion-api
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install openclaw-notion-api

简介

提供 Notion 页面、数据库和块的管理能力。

  • 适用于知识库查询、内容创建、结构化记录同步等场景。
  • 支持读取、追加和更新页面或数据库内容。
  • 需确保集成已授权至目标工作区及页面。openclaw-notion-api 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 批量写入前应核对字段名称与属性类型。

SKILL.md

name
openclaw-notion-api
description
Notion API 用于创建和管理页面、数据库和块。包含正确的图片、文件上传功能
homepage
https://developers.notion.com
author
ionepub
metadata
{"clawdbot":{"emoji":"📝"}}

openclaw-notion-api

使用 Notion API 创建/读取/更新页面、数据源(数据库)和块。

Setup(设置)

  1. 在 https://www.notion.so/profile/integrations/internal 创建内部集成
  2. 复制 API 密钥(以 ntn_secret_ 开头)
  3. 存储密钥:
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
  1. 将目标页面/数据库与集成共享(点击 "..." → "Connect to" → 你的集成名称)

API Basics(API 基础)

所有请求都需要:

NOTION_KEY=$(cat ~/.config/notion/api_key)
curl -X GET "https://api.notion.com/v1/..." \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json"
注意: Notion-Version header 是必需的。本技能使用 2025-09-03(最新版本)。在此版本中,数据库在 API 中称为"数据源"。

Common Operations(常用操作)

搜索页面和数据源:

curl -X POST "https://api.notion.com/v1/search" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{"query": "page title"}'

获取页面:

curl "https://api.notion.com/v1/pages/{page_id}" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03"

获取页面内容(块):

curl "https://api.notion.com/v1/blocks/{page_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03"

在数据源中创建页面:

curl -X POST "https://api.notion.com/v1/pages" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "parent": {"database_id": "xxxxxx"},
    "properties": {
      "Name": {"title": [{"text": {"content": "New Item"}}]},
      "Status": {"select": {"name": "Todo"}}
    }
  }'

查询数据源(数据库):

curl -X POST "https://api.notion.com/v1/data_sources/{data_source_id}/query" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {"property": "Status", "select": {"equals": "Active"}},
    "sorts": [{"property": "Date", "direction": "descending"}]
  }'

创建数据源(数据库):

curl -X POST "https://api.notion.com/v1/data_sources" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "parent": {"page_id": "xxx"},
    "title": [{"text": {"content": "My Database"}}],
    "properties": {
      "Name": {"title": {}},
      "Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}},
      "Date": {"date": {}}
    }
  }'

更新页面属性:

curl -X PATCH "https://api.notion.com/v1/pages/{page_id}" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{"properties": {"Status": {"select": {"name": "Done"}}}}'

向页面添加块:

curl -X PATCH "https://api.notion.com/v1/blocks/{page_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "children": [
      {"type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}}
    ]
  }'

Property Types(属性类型)

数据库项的常用属性格式:

  • 标题(Title): {"title": [{"text": {"content": "..."}}]}
  • 富文本(Rich text): {"rich_text": [{"text": {"content": "..."}}]}
  • 选择(Select): {"select": {"name": "Option"}}
  • 多选(Multi-select): {"multi_select": [{"name": "A"}, {"name": "B"}]}
  • 日期(Date): {"date": {"start": "2024-01-15", "end": "2024-01-16"}}
  • 复选框(Checkbox): {"checkbox": true}
  • 数字(Number): {"number": 42}
  • URL: {"url": "https://..."}
  • 邮箱(Email): {"email": "a@b.com"}
  • 关联(Relation): {"relation": [{"id": "page_id"}]}

Key Differences in 2025-09-03(2025-09-03 版本的关键差异)

  • 数据库 → 数据源: 使用 /data_sources/ 端点进行查询和检索
  • 双 ID: 每个数据库现在同时拥有 database_iddata_source_id

- 创建页面时使用 database_idparent: {"database_id": "..."}) - 查询时使用 data_source_idPOST /v1/data_sources/{id}/query

  • 搜索结果: 数据库以 "object": "data_source" 形式返回,并带有其 data_source_id
  • 响应中的父级: 页面显示 parent.data_source_id 以及 parent.database_id
  • 查找 data_source_id: 搜索数据库,或调用 GET /v1/data_sources/{data_source_id}

File Upload(文件上传)

使用 Direct Upload 方法上传图片或文件到 Notion(文件大小不超过 20MB)。两者的步骤完全相同,仅在 Step 3 的块类型上有区别。

Step 1: Create File Upload Object(创建文件上传对象)

创建上传对象以获取上传 URL:

curl --request POST \
  --url 'https://api.notion.com/v1/file_uploads' \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Notion-Version: 2025-09-03' \
  --data '{}'

响应包含:

  • id:文件上传 ID(在步骤 3 中使用)
  • upload_url:上传文件内容的 URL

Step 2: Upload File Content(上传文件内容)

使用 multipart/form-data 上传实际的文件:

curl --request POST \
  --url 'https://api.notion.com/v1/file_uploads/{file_upload_id}/send' \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H 'Notion-Version: 2025-09-03' \
  -H 'Content-Type: multipart/form-data' \
  -F "file=@/path/to/file.png"

重要:

  • 使用 POST 方法(不是 PUT)
  • 包含 AuthorizationNotion-Version headers
  • 使用 -F 进行 multipart/form-data
  • 文件大小必须 ≤ 20MB

Step 3: Insert into Page(插入到页面)

将上传的文件作为块添加。根据文件类型选择不同的块类型:

上传图片:

curl --request PATCH \
  --url "https://api.notion.com/v1/blocks/{page_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Notion-Version: 2025-09-03' \
  --data '{
    "children": [
      {
        "type": "image",
        "image": {
          "type": "file_upload",
          "file_upload": {
            "id": "{file_upload_id}"
          }
        }
      }
    ]
  }'

上传文件:

curl --request PATCH \
  --url "https://api.notion.com/v1/blocks/{page_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Notion-Version: 2025-09-03' \
  --data '{
    "children": [
      {
        "type": "file",
        "file": {
          "type": "file_upload",
          "file_upload": {
            "id": "{file_upload_id}"
          }
        }
      }
    ]
  }'

注意: 不要在块定义中包含 "object": "block"

Common Errors(常见错误)

  • invalid_request_url:检查是否使用了 POST 方法和正确的 URL 格式
  • unauthorized:确保步骤 2 中存在 AuthorizationNotion-Version headers
  • validation_error:必须在附加(步骤 3)之前上传文件(步骤 2)

Notes(注意事项)

  • 页面/数据库 ID 是 UUID(带或不带连字符)
  • API 无法设置数据库视图过滤器 — 这是 UI 专属功能
  • 速率限制:平均约 3 请求/秒
  • 创建数据源时使用 is_inline: true 以将其嵌入页面中

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

85.63%
按下载量换算3,422

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills