NotionリンクをSlack上で展開してくれる君
notino-deglacerはNotionのリンクがSlackに投稿された際に、それを展開してくれるSlack Appです。以下の機能を備えています。
- Notionの記事タイトル展開
note: Notionの非公式なAPIクライアントを利用しています。Notion側が意図しない利用方法のため、リスクを承知の上利用してください。
- Notionのアクセストークン取得
- Slack App作成
- notion-deglacerのデプロイ
- 2で作ったappに、3のURLを登録する
- Slack Appのbotユーザーをチャンネルに招待する
この記事の Accessing non-public pages を参考にしながらアクセストークンを取得してください。
- https://api.slack.com/apps の Create New App からアプリ作成
- 左メニュー OAuth & Permissions を開き、Scopesでlink:writeを追加
- 左メニュー Event Subscriptions を開く
- App unfurl domains を展開し、 Add Domain で、
www.notion.so
を入力し、Save Changes
- App unfurl domains を展開し、 Add Domain で、
- 左メニュー Install App を開き、 Install App to Workspace -> Allow
- OAuth Access Token が表示されるのでメモ (
SLACK_TOKEN
) - Basic Information を開き App CredentialsのSigning Secretをメモ (
SLACK_SIGNING_SECRET
)
※後で戻ってくるので、Slack Appの管理画面は開いたままにしておく。
deglacerはGoで書かれたWebアプリケーションなので、任意の場所で簡単に動かせますが、HerokuやGoogle App Engineを利用するのがより簡単でしょう。動作のためには以下の環境変数が必要です。
NOTION_TOKEN
: 手順1で取得したNotionのアクセストークンSLACK_TOKEN
: 手順2-5で取得したSlack AppのトークンSLACK_SIGNING_SECRET
: 手順2-6で取得したリクエスト署名検証secret
以下のボタンからデプロイできます。
- 左メニュー Event Subscriptions を開き、 Request URL に 3でデプロイしたdeglacerのURLを入力
- Verified と表示されたら Enable Events を On にして Save Changes
Bot名は、左メニューのApp Homeから確認してください。
これで準備完了です。
notion-deglacerはSongmuさんのリポジトリをフォークして作られています。
https://github.com/Songmu/deglacer
Webサーバーの処理、Slackへの送信処理の大半をそのまま利用させていただいています。この場をお借りして御礼申し上げます。ありがとうございました!