見出し画像

[GAS] NotionAPIを使って、作成した日報ページの内容を取得しChatworkでメッセージを送信する1

はじめに

前回、GASで、NotionAPI を使用して、日報ページを新規で作成する処理を実装しました。

GASで、NotionAPIを使用し、前回作成した日報ページから作業内容を取得し、日報を報告するメッセージをChatworkで送信する、という処理を実装します。

今回は、その処理の概要と、Notionのページ構成の基礎知識についてまとめていきます。

処理概要

Notionの日報ページに記載されている作業内容と、Googleスプレッドシート上の出退勤の時間情報を合わせて、「今日の日報報告」としてChatworkにメッセージを送信します。

Googleスプレッドシートの出社、退社の情報は、下記の構成で記録しています。

Notionの日報ページでは、作業内容を下記の構成で記載しています。

ページコンテンツ(Page content)の中で、箇条書きリスト(bulleted list)部分に記載されている、作業内容の記述を取得します。

日報としてメッセージを送信する内容は、Googleスプレッドシート内にひな形のシートを準備しておきます。
その日の勤務時間は、月ごとに作成される出社、退社の時間のシートから、今日の情報を取得できるよう、関数を設定しています。
業務内容は、Notionの日報ページより、取得してくるように実装します。

Notionのページオブジェクト

前回の記事で、Notionの新規ページを作成した際、HTTPリクエストの結果として、作成したページのページオブジェクトが格納されていたことをご紹介しました。

ページオブジェクトの詳細は、下記に記載されています。

今回の処理では、HTTPリクエストの結果のページオブジェクトよりページIDを取得し、そのページIDを指定してページ内の要素を取得する、という処理を行います。

なお、このIDは、UUIDの形式となっています。

例)xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

NotionAPIにて、ページID、オブジェクトIDを指定する場合、HTTPリクエストの結果のオブジェクトより取得したID「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」のハイフンを削除したものを指定することとなります。

Notionページのページコンテンツ(Page Content)

Notionのページ内は、ヘッダ部分のページプロパティ(Page properties)ページコンテンツ(Page content)の2つの要素でできています。

このページの例だと、ページコンテンツ(Page content)部分は、下記のように3つの要素(Block)に分かれています。

②は、箇条書きリストがネストしています。
この場合、「請求書処理」のテキストを持つブロックのpropertyであるhas_childrenは、Trueとなっています。

つまり、「請求書処理」のテキストを持つブロックが親要素となり、「作成、送付」のテキストを持つブロックが子要素という構成になります。

まとめ

今回は、GASで、NotionAPIを使用し、前回作成した日報ページから作業内容を取得し、日報を報告するメッセージをChatworkで送信する処理の概要と、Notionのページの基礎知識について、まとめました。

次回は、Notionの日報ページから作業内容を取得する処理の実装について、ご紹介していきます。


いいなと思ったら応援しよう!