実現したいこと
Notionのページ上で実行し、別ページのコンテンツをAjaxで取得したいです。
前提
・APIキー取得済みです。
・YouTubeのAPIを用いてJavaScriptでjosnを取得したことがありますが、コードの意味はよくわかっていないレベルです。
発生している問題・エラーメッセージ
公式ドキュメントを参照し、該当のソースコードを実行しましたが、下記のエラーでした。
VM34283:1 Uncaught ReferenceError: require is not defined
該当のソースコード
実行は完全に下記のままです。
おそらく3つ値(@notionhq/client
とprocess.env.NOTION_API_KEY
とblockId
)はそれぞれ適切な値が入るのかと思いますが、そういったことはせず、とりあえずエラー覚悟で完全に下記のまま実行しました。
実行場所はAPIキーを発行したNotioinアカウントにある、とあるページで開発ツールを開き、そのコンソール画面です。
JavaScript
1const { Client } = require('@notionhq/client'); 2 3const notion = new Client({ auth: process.env.NOTION_API_KEY }); 4 5(async () => { 6 const blockId = '59833787-2cf9-4fdf-8782-e53db20768a5'; 7 const response = await notion.blocks.children.list({ 8 block_id: blockId, 9 page_size: 50, 10 }); 11 console.log(response); 12})();
試したこと
先に述べましたように3つ値はそれぞれ適切な値が入るのかと思います。
それらを欠いた状態で実行しましたので、
「@notionhq/clientというURLにはアクセスできません」か
「NOTION_API_KEYが不一致です」か
「blockIdのコンテンツが見つかりません」などのエラーになるのかと思っていました。
しかし「requireが実行できません」と言っているので、この3つ以前の問題だと思っています。
しかし「requireってなんだ?」というレベルで、該当のソースコードの構造がよくわかっていないので、使い慣れたfetchで下記のように実行しました。
下記の●●は対象ページID32文字です。★★は取得したAPIキーです。(取得時にsecret_の接頭辞がありましたが、この接頭辞をつけたままでいいのかどうかも分かっていません。)
JavaScript
1const blockId = '●●'; 2const NOTION_API_KEY = 'secret_★★'; 3 4fetch(`https://api.notion.com/v1/blocks/${blockId}/children`, { 5 headers: { 6 'Authorization': `Bearer ${NOTION_API_KEY}`, 7 'Notion-Version': '2021-05-13', 8 }, 9}) 10 .then(response => response.json()) 11 .then(data => { 12 console.log(data); 13 }) 14 .catch(error => { 15 console.log('エラーが発生しました:', error); 16 });
しかしコンソールに出たのは下記のエラーでした
Refused to connect to 'https://api.notion.com/v1/pages/●●/children' because it violates the document's Content Security Policy. エラーが発生しました: TypeError: Failed to fetch
回答1件
あなたの回答
tips
プレビュー