Open3
notion APIを使ってみる

動作確認はapidogを使用
Databaseの操作
DBの更新
{
"properties": {
"Wine Pairing": {
"rich_text": {}
}
},
"title": [
{
"text": {
"content": "修正後のDB名"
}
}
]
}
DBにアイテムを追加する
ページを作成するAPIを使うらしい
- 事前にDBにカラムを追加しておく
{
"parent": {"database_id": "e295f8f267d6475890e89a7d4634363e"},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "新しいレコード"
}
}
]
},
"担当者":{
"rich_text": [
{
"text": {
"content": "山口央士朗"
}
}
]
},
"Status":{
"multi_select":[
{
"name": "対応中"
}
]
}
},
"children": [
{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [
{
"text": {
"content": "これはテストです"
}
}
]
}
}
]
}
プロパティなど
エラー
Could not find database with ID: [データベースのID]. Make sure the relevant pages and databases are shared with your integration
share->connectionからインテグレーションを行なっていなかったために発現。
しばらくconnectionから選択できなかったので時間がかかるかも。
参考

gasを使用してnotion APIの中身を変更する
- 機密情報を扱う時のためにtokenなどの扱いも考えておく
手順の流れ
スクリプトプロパティに下記データの対応
- NOTION_KEY
- notionのシークレットキーを対応
- NOTION_DB_ID
- notionのDBのID
- GAS_KEY
- 外部からAPIアクセスするのに必要なキー情報
- 任意の文字列を保存
gas keyのtokenが一定時間後に切り替わってしまう
より
トークンは一定時間(最低でも数分)後に期限切れになります。
これだと外部のアプリケーションから認証付きで呼び出せない
そこでchatworkの記事を参考にquerystringに認証情報を追加する
またはVerification Tokenを使用する
参考

エラー
gasのAuthorizationで401エラーが発生
- プロジェクト設定を選択
- 「appsscript.json」マニフェスト ファイルをエディタで表示するをチェック
- エディタにあるappsscript.jsonを開く
- 下記のようにoauthScopesを追加
{
"timeZone": "Asia/Tokyo",
"dependencies": {},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
"executeAs": "USER_DEPLOYING",
"access": "MYSELF"
},
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/drive"
]
}