← 返回 Skills 市场
ionepub

Openclaw Notion Api

作者 ionepub · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
377
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install openclaw-notion-api
功能描述
Notion API 用于创建和管理页面、数据库和块。包含正确的图片、文件上传功能
使用说明 (SKILL.md)

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": "[email protected]"}
  • 关联(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 以将其嵌入页面中
安全使用建议
This skill appears to be a straightforward Notion API helper, but note two things before installing: (1) although the registry metadata lists no required credentials, the SKILL.md instructs you to create and read a local Notion API key (~/.config/notion/api_key). Treat that key as sensitive — prefer storing it in the platform's secret manager rather than a plaintext file, and set file permissions (chmod 600). (2) Confirm you are comfortable letting the agent read that local file (it will be used to set NOTION_KEY) and that you only share a minimal-scope Notion integration key. If you need higher assurance, ask the skill author to declare the primary credential in metadata or update the instructions to use the platform's secret store instead of encouraging plaintext files.
功能分析
Type: OpenClaw Skill Name: openclaw-notion-api Version: 0.1.0 The OpenClaw Notion API skill bundle is benign. It provides legitimate instructions and `curl` examples for interacting with the official Notion API, including creating/managing pages, databases, and uploading files. The skill requires reading an API key from `~/.config/notion/api_key` and user-specified files for upload, which are necessary for its stated functionality. There is no evidence of data exfiltration to unauthorized endpoints, malicious execution, persistence mechanisms, obfuscation, or prompt injection attempts against the agent to perform actions outside its documented purpose.
能力评估
Purpose & Capability
Name/description and the curl-based examples align with a Notion API integration (creating/reading/updating pages, databases/data_sources, and file uploads). The endpoints referenced (api.notion.com) and described features are consistent with the stated purpose.
Instruction Scope
The SKILL.md instructs the agent to create and read a local file at ~/.config/notion/api_key and to set NOTION_KEY by cat-ing that file before calling Notion APIs. Otherwise the instructions stay focused on Notion endpoints and do not reference unrelated system files or external endpoints. The file-read/write behavior is expected for an API helper but should be explicitly declared.
Install Mechanism
This is instruction-only (no install spec, no code files). That minimizes on-disk execution risk — nothing is downloaded or installed by the skill.
Credentials
The skill requires an API credential (Notion integration key) in practice, but the registry metadata lists no required env vars or primary credential. The SKILL.md asks the user/agent to create and read a plaintext file containing the secret; this mismatch between declared requirements and runtime behavior is an inconsistency and a potential security/privacy concern.
Persistence & Privilege
always is false, no install steps, and the skill does not request persistent platform-level privileges or modify other skills. Autonomous invocation is allowed (platform default) but not combined with other high-risk flags.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install openclaw-notion-api
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /openclaw-notion-api 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial release of openclaw-notion-api skill. - Provides guides and sample curl commands for Notion API operations including creating, reading, and updating pages, databases (data sources), and blocks. - Documents 2025-09-03 API changes: databases are now "data sources", with new endpoints and dual IDs. - Includes detailed instructions and examples for uploading and attaching files or images (<20MB) via Notion’s new direct file upload method. - Lists common property types and demonstrates their API payload formats. - Details common error scenarios and provides setup instructions for Notion API authentication.
元数据
Slug openclaw-notion-api
版本 0.1.0
许可证
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Openclaw Notion Api 是什么?

Notion API 用于创建和管理页面、数据库和块。包含正确的图片、文件上传功能. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 377 次。

如何安装 Openclaw Notion Api?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install openclaw-notion-api」即可一键安装,无需额外配置。

Openclaw Notion Api 是免费的吗?

是的,Openclaw Notion Api 完全免费(开源免费),可自由下载、安装和使用。

Openclaw Notion Api 支持哪些平台?

Openclaw Notion Api 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Openclaw Notion Api?

由 ionepub(@ionepub)开发并维护,当前版本 v0.1.0。

💬 留言讨论