Notion API workshopに参加してきたレポ

2 min read読了の目安(約1800字

Crowdcastにて行われたNotion APIのworkshopに参加してきました。📓

イベントページはこちら Workshop: Build on the Notion API
ワークショップの最終コードはこちら final-notion-coding-workshop

Agenda

  • Introduction 5min
  • Notion fundamental 5min
  • Building an integration 20min
  • Q&A 15min

Introduction

普通にNotionを使う上でのデータベース、ページ、ブロックなどの概念をざっと説明。

Notion fundamental

Publlic API fuatureの紹介です。Developerページの導入をさくっと説明といったところ。

https://developers.notion.com/

Building an integration

サンプルページを複製して実際にIntegrationを作ってみるワークショップです。

以下のようなステップで、データベースにTwitterの呟きのデータを入れていくような機能を実装していきます(事前にTwitterの呟きデータはjsonで用意されており、多分取得してきたという想定のデータ)

事前準備

事前に、データベースを作成しておきデータベースIDを控えておく。(現時点では、データベースを作成するのはAPIではできなかったかと)

integrationを作成し、Internal Integration Tokenを控えておく。

データベースに作成したintegrationを連携させておく。

新しいページを作ってみる

jsonのTwitterデータから、データベースIDを指定してtweetごとにページを作成していきます。

データベースのスキーマを取得してみる

データベースにはtags(マルチセレクタ)のプロパティが予め作成してあるので、tagsの情報を取得してみます。すでに設定されてるマルチセレクタの情報が取得できます。

データベースにクエリを発行してみる

設定されているtagsでデータベースのページを絞り込みしてみます。

ページを更新してみる

最後に、ページをアップデートしてみます。今回はtagsを追加してみます。

Q&A

気になったものだけ

  • webhook / PubSubの実装は計画してる?
    Yes!一番欲しいって言われてる機能。

  • ロードマップ的なもの考えてる?
    内部的には考えてるけど、公にはしてない。
    slack channelとかニュースレターでチェックしてね!とのこと

  • Notionのバックエンド何で書いてるの?どこにホストしてる?
    TypeScriptでAWSだそうです

  • GraphQL版のAPIは考えてますか?
    元々がREST APIなので今のところ考えてなくて、優先順位は低め。

  • データベースに入ってる合計ページ取れる機能はある?
    今のところないけど、確かに欲しい。とのこと。

所感

当日は配信プラットフォーム側のトラブルでスクリーンシェアがアップデートされないなど発生し、みんなざわざわしていましたが、完成版のソースコードを先に共有してくれたり、Q&Aセッションはみんな盛り上がったりといい雰囲気でした。
なお、ワークショップで実際にコードを書いている所はちゃんと撮り直したようで、今確認したらトラブル部分は無くなって新しい動画に書き換わっていました。

ワークショップの内容に関しては、初歩的でわかりやすくJavaScriptSDKを用いてさくっとといった感じ。
Notion愛好家なんですが、イマイチAPIはちょっと触ってみただけなので何か作ってみようかなとそろそろ思い始めてみた所です。

みなさん良いNotionライフを!👋