実現したいこと
Notionのデータベースの内容をスプレッドシートに定期的に転記をしたいと考えております。
データベース 各プロパティ
1列目:名前
2列目:応募日(日付)
3列目:ステータス(ステータス)
4列目:職種(セレクト)
5列目:次選考日(日付)
転記先のスプレッドシートは特定の1つのシートを想定しています。
発生している問題・分からないこと
エラーメッセージが発生し、先に進めておりません。
エラーメッセージ
error
1TypeError: Cannot read properties of undefined (reading 'length') 2syncNotionToGoogleSheet @ 20240213質問前.gs:17
該当のソースコード
function syncNotionToGoogleSheet() { // Notionからデータを取得するための関数を呼び出す var notionData = fetchNotionData(); // GoogleスプレッドシートのファイルIDとシート名 var ss = SpreadsheetApp.openById('【スプレッドシートID】'); var sheet = ss.getSheetByName('【特定のシート名】'); // シートをクリアする sheet.clear(); // ヘッダー行を設定 var headers = ['名前', '応募日','ステータス','職種','次選考日']; sheet.appendRow(headers); // Notionデータが存在しない場合の処理 if (notionData.length == 0) { Logger.log('Notionからデータが見つかりませんでした。'); return; } // Notionデータをスプレッドシートに転記 for (var i = 0; i < notionData.length; i++) { var row = []; row.push(notionData[i].properties.Name.title[0].text.content); row.push(notionData[i].properties['応募日'].date.start); row.push(notionData[i].properties['ステータス'].status); row.push(notionData[i].properties['職種'].select); row.push(notionData[i].properties['次選考日'].date.start); sheet.appendRow(row); } } // Notionからデータを取得する関数 function fetchNotionData() { var databaseId = "【NotionデータベースID】"; var url = 'https://api.notion.com/v1/databases/' + databaseId + '/query'; var token = '【secret_から始まるNotionAPI TOKEN】'; var options = { 'method': 'get', 'headers': { 'Authorization': 'Bearer ' + token, 'Notion-Version': '2022-06-28', "Content-Type": "application/json", }, 'muteHttpExceptions': true // このオプションを設定してサーバーからのレスポンスを取得 }; var response = UrlFetchApp.fetch(url, options); var data = JSON.parse(response.getContentText()); Logger.log(options); if (response.getResponseCode() != 200) { Logger.log('APIリクエストが失敗しました。レスポンスコード: ' + response.getResponseCode()); Logger.log('レスポンス内容: ' + response.getContentText()); } }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
当方初心者のため、googleで検索したものを基本的にコピペ改変、それでも解決しなかったので、chatGPTで出力されたものを一部改変して用いております。
いずれも同様のエラーで先に進めない状況です。
エラー出現時にもchatGPTに問い合わせてみたのですが、提示されたような「APIエンドポイントの確認」「APIトークンの有効化に関する確認」「token情報の更新・再取得」なども行ったのですが、エラーが解消しません。
本件類似案件についてterateil でNotionで検索したのですが、同様の質問が見られませんでした。
なお、54行目の
Logger.log('APIリクエストが失敗しました。レスポンスコード:
1
では「APIリクエストが失敗しました。レスポンスコード: 400」と出力されています。
補足
特になし

回答1件
あなたの回答
tips
プレビュー