详细分析 ▾
运行时依赖
安装命令
点击复制本土化适配说明
Notion助手 安装说明: 安装命令:["openclaw skills install laosi-notion","npx clawhub@latest install laosi-notion"]
技能文档
Notion Helper - Notion助手 激活词:Notion / 笔记管理 / 知识库
安装 pip install notion-client
获取API密钥 访问 https://www.notion.so/my-integrations 创建新集成 → 复制API密钥 分享数据库给集成
Python实现
from notion_client import AsyncClient import asyncioclass NotionHelper: def __init__(self, token: str): self.client = AsyncClient(auth=token)
async def create_page(self, parent_id: str, title: str, content: str = ""): await self.client.pages.create( parent={"database_id": parent_id}, properties={ "title": { "title": [{"text": {"content": title}}] } }, children=[{ "object": "block", "type": "paragraph", "paragraph": { "rich_text": [{"type": "text", "text": {"content": content}}] } }] )
async def query_database(self, db_id: str, filter_props: dict = None): params = {"database_id": db_id} if filter_props: params["filter"] = filter_props return await self.client.databases.query(**params)
async def update_page(self, page_id: str, properties: dict): await self.client.pages.update(page_id, properties=properties)
async def get_page(self, page_id: str): return await self.client.pages.retrieve(page_id)
async def search(self, query: str): return await self.client.search(query)
使用示例
async def main(): helper = NotionHelper("secret_xxx")# 创建页面 await helper.create_page( parent_id="database_id", title="AI学习笔记", content="今天学习了机器学习..." )
# 搜索页面 results = await helper.search("AI") for page in results['results']: print(page['title'])
# 查询数据库 pages = await helper.query_database("database_id") for page in pages['results']: print(page['properties']['title']['title'][0]['text']['content'])
asyncio.run(main())
数据类型
| 类型 | 说明 |
|---|---|
| title | 标题 |
| rich_text | 文本 |
| number | 数字 |
| checkbox | 复选框 |
| select | 单选 |
| multi_select | 多选 |
| date | 日期 |
| url | 链接 |
| 邮箱 | |
| phone_number | 电话 |