手順
- Notionの公式サイトからIntegration+トークンを作成する
- GASで後述の関数を作成+ウェブアプリとして公開(デプロイ時に設定するアクセス権限は「全て」を選択すること)
- SlackのOutGoing Webhookを設定し、手順2で公開したアプリのURLを設定
GASの実装
function doPost(e) {
// Slackのトリガーに設定した単語を正規表現で消す
var text = e.parameter.text.replace(/`Idea`/g, '');
var arr = text.split(/\r\n|\n/);
var data = {
"parent": { "database_id": {*** NotionのページURLにあるパラメータを入力 ***} },
"properties": {
"Title": {
"title": [
{
"text": {
"content": arr[0]
}
}
]
},
"Description": {
"rich_text": [
{
"text": {
"content": arr[1]
}
}
]
}
}
}
var headers = {
"Authorization": "Bearer {*** Notionで作成したIntegrationのトークン ***}",
"Content-Type": "application/json",
"Notion-Version": "2021-05-13"
};
var options = {
"headers": headers,
"method": "post",
"payload": JSON.stringify(data)
};
UrlFetchApp.fetch("https://api.notion.com/v1/pages", options);
}
※ String.splitで改行をキー配列に変換してますが、割と適当です。あしからず