Flutter Notion API集成插件notion_api的使用
Flutter Notion API集成插件notion_api的使用
概述
notion_api
是一个用于 Dart 的 Notion API 客户端,可以帮助你在 Flutter 应用中与 Notion 进行交互。本文将介绍如何在 Flutter 项目中使用 notion_api
插件。
初始化
全局实例
要开始使用 notion_api
,首先需要创建一个 NotionClient
实例,并传入你的 Notion 集成令牌:
import 'package:notion_api/notion_api.dart';
final NotionClient notion = NotionClient(token: 'YOUR_SECRET_TOKEN');
单独类实例
你也可以使用单独的请求组类,例如 NotionPagesClient
或 NotionDatabasesClient
。它们的使用方式与主客户端类似,但方法是类方法而不是类属性方法:
// 使用主类
final NotionClient notion = NotionClient(token: 'YOUR_TOKEN');
notion.databases.fetchAll();
// 使用单独类
final NotionDatabasesClient databases = NotionDatabasesClient(token: 'YOUR_TOKEN');
databases.fetchAll();
页面操作
创建页面
创建页面时需要定义页面的父对象,可以是数据库、页面或工作区:
// 使用数据库作为父对象
final Page page = Page(
parent: Parent.database(id: 'YOUR_DATABASE_ID'),
title: Text('NotionClient (v1): Page test'),
);
// 发送请求到 Notion
var newPage = await notion.pages.create(page);
更新页面
更新页面的属性:
await notion.pages.update('YOUR_PAGE_ID', properties: Properties(map: {
'Description': RichTextProp(content: [
Text('New value for Description property'),
]),
}));
归档/删除页面
归档(删除)页面实际上是更新页面的一个子动作:
await notion.pages.update('YOUR_PAGE_ID', archived: true);
获取页面
获取特定页面的信息:
var pageData = await notion.pages.fetch('YOUR_PAGE_ID');
数据库操作
创建数据库
创建数据库时需要指定父对象,可以是页面或工作区:
final Database database = Database.newDatabase(
parent: Parent.page(id: 'YOUR_PAGE_ID'),
title: [Text('Database from examples')],
pagesColumnName: 'Custom pages column name',
properties: Properties(map: {
'Description': MultiSelectProp(options: [
MultiSelectOption(name: 'Read', color: ColorsTypes.Blue),
MultiSelectOption(name: 'Sleep', color: ColorsTypes.Green),
]),
}),
);
await notion.databases.create(database);
获取数据库
获取特定数据库的信息:
var databaseData = await notion.databases.fetch('YOUR_DATABASE_ID');
列出所有数据库
虽然不推荐使用,但你可以列出所有数据库:
var databases = await notion.databases.fetchAll();
块内容操作
添加块内容
添加块内容到现有块中:
// 创建块内容实例
Children children = Children.withBlocks([
Heading(text: Text('Test')),
Paragraph(texts: [
Text('Lorem ipsum (A)'),
Text('Lorem ipsum (B)', annotations: TextAnnotations(
bold: true,
underline: true,
color: ColorsTypes.Orange,
))
])
]);
// 发送请求到 Notion
await notion.blocks.append(to: 'YOUR_BLOCK_ID', children: children);
完整示例
以下是一个完整的示例,展示了如何创建一个页面并添加各种块内容:
// 初始化 Notion 客户端
final NotionClient notion = NotionClient(token: 'YOUR_SECRET_TOKEN');
// 创建页面实例
final Page page = Page(
parent: Parent.database(id: 'YOUR_DATABASE_ID'),
title: Text('notion_api example'),
);
// 创建页面
var newPage = await notion.pages.create(page);
String newPageId = newPage.page!.id;
// 创建页面内容
Children fullContent = Children.withBlocks([
Heading(text: Text('This the title')),
Paragraph(texts: [
Text('Here you can write all the content of the paragraph but if you want to have another style for a single word you will have to do '),
Text('this.', annotations: TextAnnotations(color: ColorsTypes.Green, bold: true, italic: true)),
Text('Then you can continue writing all your content.')
]),
ToDo(text: Text('Daily meeting'), checked: true),
BulletedListItem(text: Text('Milk')),
NumberedListItem(text: Text('Notion'))
]);
// 将内容添加到页面
await notion.blocks.append(to: newPageId, children: fullContent);
通过上述步骤,你可以在 Flutter 应用中轻松集成 Notion API 并进行各种操作。
更多关于Flutter Notion API集成插件notion_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复