こんにちは、Hello,Worldです。今回はNotionAPIを使用したので、感想を書いていこうかと思います。
NotionAPIとは何か
NotionAPIとは、Notionのデータベースやページの内容をプログラムから操作できるようにするインターフェースです。このAPIを使用することで、Notionのコンテンツを外部のアプリケーションやウェブサイトと連携させることが可能になります。つまり、Notionをヘッドレスコンテンツ管理システム(CMS)として活用できるようになるのです。Notion APIは、HTTPベースのREST APIで、
- ページの作成・取得・更新
- データベースのクエリ(検索)
- ページやデータベースの構造を取得
- コンテンツを読み書き
ということが出来ます。
NotionAPIを使用するメリット
Notionをヘッドレスcmsにすることで、フロントエンドを使えるようになります。SuperやWraptasのようなNotionのページを簡単にウェブサイト化出来るツールでやるよりも、ReactやNextjsを使えるのでSEOに強くなれますし、ページ速度も高速になります。また、フロントエンドを使用できるので、CSSやJavascriptの細かい編集が可能になります。例として、このブログで自分が書いたコードを引用します。
1<ReactMarkdown
2 className="prose prose-lg text-justify leading-relaxed"
3 rehypePlugins={[rehypeRaw]} // 生のHTMLを許可
4 components={{
5 a: ({ href, ...props }) => { //ユーチューブの埋め込みを修正
6 if (href && href.includes("youtube.com/watch")) {
7 const videoId = href.split("v=")[1]?.split("&")[0];
8 return (
9 <div className="iframe-container ">
10 <iframe className="rounded aspect-[3/2]"
11 src={`https://www.youtube.com/embed/${videoId}`}
12 ></iframe>
13 </div>
14 );
15 }
16 return <a href={href} {...props} />;
17 }, //ノーションの文章を整形
18 h1: ({ node, ...props }) => (
19 <h1 className="text-4xl font-bold my-6" {...props} />
20 ),
21 h2: ({ node, ...props }) => (
22 <h2 className="text-3xl font-semibold my-5" {...props} />
23 ),
24 p: ({ node, ...props }) => (
25 <p
26 className="text-lg my-4 text-gray-700 leading-loose"
27 {...props}
28 />
29 ),
30 ul: ({ node, ...props }) => (
31 <ul className="list-disc list-inside my-4" {...props} />
32 ),
33 blockquote: ({ node, ...props }) => (
34 <blockquote
35 className="border-l-4 border-gray-300 pl-4 italic text-gray-600 my-6"
36 {...props}
37 />
38 ),
39 img: ({ node, ...props }) => (
40 <img
41 {...props}
42 style={{
43 maxWidth: "100%",
44 height: "auto",
45 }}
46 className="rounded-lg shadow-md my-4"
47 />
48 ),
49 code({
50 inline,
51 className,
52 children,
53 ...props
54 }: {
55 inline?: boolean;
56 className?: string;
57 children?: React.ReactNode;
58 })
引用するYoutubeの大きさからimgまで細かく調整が出来ています。
NotionAPIをどうやって使うか
①Notion APIキーの取得
- Notion APIページにアクセスNotion Developers から新しい「Integration」を作成します。
- 新しいインテグレーションを作成
- 名前やアイコンを設定。
- 「Internal Integration」オプションを選択。
- APIキーを取得
- 作成したIntegrationに対応する「Integration Token」をコピーします。
② NotionデータベースやページをAPIで操作する準備
- APIが操作する対象のページやデータベースを用意
- Integrationにアクセス権を付与
- 作成したIntegrationを、対象のページやデータベースに「招待」します。
こうするとNotionのAPIを使うことが出来ます。
それでは。