如何通过Notion API的JavaScript SDK获取单选属性选项?
如何用Notion JavaScript SDK获取单选属性的选项
核心原因:单选与多选属性的API结构不同
你之前用的多选属性方法失效,是因为Notion API里单选(select)和多选(multi_select)属性的结构字段不一样——多选属性的选项存在multi_select.options下,而单选属性的选项存在select.options下,直接复用多选的访问方式会拿到undefined,自然无法生效。
正确实现步骤
- 初始化Notion客户端(确保已安装
@notionhq/client包):
const { Client } = require('@notionhq/client'); // 替换成你的Notion API密钥 const notion = new Client({ auth: 'your-notion-api-key' });
- 编写获取单选选项的函数:
async function fetchSelectPropertyOptions(databaseId, propertyName) { // 获取数据库的完整属性定义 const database = await notion.databases.retrieve({ database_id: databaseId }); // 定位目标单选属性 const targetProperty = database.properties[propertyName]; // 校验属性类型是否为单选 if (targetProperty.type !== 'select') { throw new Error(`「${propertyName}」不是单选类型属性`); } // 提取单选选项列表 const selectOptions = targetProperty.select.options; // 每个选项包含id、name、color三个字段 console.log(`「${propertyName}」的单选选项:`, selectOptions); return selectOptions; } // 调用示例(替换成你的数据库ID和属性名称) fetchSelectPropertyOptions('your-database-id', '你的单选属性名') .catch(err => console.error(err));
注意事项
- 确保你的API密钥拥有读取目标数据库的权限
- 属性名称必须和Notion数据库里的名称完全一致(区分大小写)
- 返回的
options数组中,每个元素的结构为:{ id: string, name: string, color: string }
内容的提问来源于stack exchange,提问作者user17572023
相关产品推荐
相关产品推荐

