- 公開日:
セルフホストしたDifyとNotionを接続する方法
- Authors
- Name
- 代表取締役 宮永邦彦
- @miyanaga
画像軽量化とWebフロントエンドのスピード改善の専門家です。Web系のIT技術大好き。
このサイトではスピード改善のリアルや、日々の技術的な気づきを共有します。
セルフホストしたDifyからNotionに接続するには少し工夫が必要だった。
Difyのセルフホスティングについては、手順をまとめた記事を参照のこと。
その内容に沿って接続の手順を解説する。
Notion側の操作
Notion側では、コネクトを作成して、次の情報を取得する。
- インテグレーションID
- 内部インテグレーションシークレット
まずはワークスペースの設定を開き、コネクト
メニューからインテグレーションを作成または管理する
を選択する。
別タブにインテグレーションの管理画面が表示される。ここで新しいインテグレーション
をクリックする。
任意のインテグレーション名を入力し、関連ワークスペースを選択して保存ボタンを押す。
わかりにくいが、インテグレーション名を追加
と表示される部分はテキストフィールドになっている。種類は内部のままでよい。
続いてインテグレーションの設定画面に進む。
まずここで内部インテグレーションシークレット
を表示し、内容を控えておく。
続いてページの下部に機能セクションがある。コンテンツを読み取る
は必須だが、コメントやユーザー情報については、それらもナレッジに必要かどうかで判断されたい。
最後に保存ボタンを押す。
インテグレーションIDの取得
イングレーションIDは画面上を探しても見当たらなかった。
ブラウザのアドレスバーから/internal/
に続くUUIDがインテグレーションIDなので、これも控えておく。
Difyに共有するドキュメントを指定
Difyに共有するドキュメントは、Notion側でも明示的に指定する必要がある。
ドキュメントの右上のアイコンからメニューを開き、コネクト
- 接続先
- 作成したDifyへのインテグレーションを選択する。
Dify側の操作
Dify側に先ほど取得したインテグレーションの情報を設定していく。
これは環境変数で行う。docker/.env
ファイルを開き、次の項目を変更する。
NOTION_INTEGRATION_TYPE=internal # publicではなくinternalを指定
NOTION_CLIENT_SECRET= # 空欄のままでよい
NOTION_CLIENT_ID=インテグレーションID # あなたの環境における値
NOTION_INTERNAL_SECRET=内部インテグレーションシークレット # あなたの環境における値
そしてDifyを再起動する。
docker compose --profile certbot down
docker compose --profile certbot up -d
これでDifyのナレッジ作成時に、Notionからの同期
を利用できるようになった。
Notion側でDifyに接続したドキュメントを選択できる。
再同期
Notion側の更新だが、自動でDifyに反映されるわけではなさそうだ。
同期の方法のひとつは、ナレッジのドキュメント一覧から、アクションメニューを開き同期
を選択する方法だ。
もうひとつは、設定ポップアップのデータソース
- ノーション
からメニューを開き、同期
を選ぶ方法だ。
ナレッジを同期するAPIも見当たらなかった。当面は手動で行うほかなさそうである。
代替案
Notionのインテグレーションには、一般的なOAuthクライアントを作成する方法もある。
クラウド版のDifyはそちらを採用している。
インテグレーションの種類として公開
(public
)を選択すればその方法で進められると思われるが、設定項目が多い。内部インテグレーションとして接続する方が楽であった。