Notionには、APIが提供されていて JavaScriptや PHPなどのプログラミング言語を使って、Notionのデータを取得したり、Notionにデータを投入することができます。
今回は、PHPを使ってデータを取得する方法についてメモしておきます。
Integrationを作成しよう
Notion APIを使うには、Integrationを作成する必要があります。次のサイトから新しい Integrationを作成しましょう。
名前や、ワークスペースを選んで、適切な権限を選択します。データを更新する必要がなければ、「コンテンツを読み取る」にだけチェックを入れるとよいでしょう。

すると、「シークレットトークン」という文字列が生成されるので、これをメモしておきます。

ページから「コネクト」を追加する
次に、共有したいデータを保存しているページに、今作成した Integrationを「コネクト」します。右上のメニューボタンをクリックして、「コネクト」メニューをクリックしたら、先ほど作成した名前で検索してみましょう。見つかったら、追加しておきます。

データベースIDをコピーしよう
次に、このページの「データベースID」を取得します。WebブラウザでNotionを表示したら、アドレス欄の次の部分をコピーします。
https://notion.so/XXXXX/[データベースID]?v=XXXXX
最後の「/」から「?」までの間の文字列になります。これをコピーしましょう。これで準備完了です。
PHPのプログラムソースサンプル
作成するPHPのプログラムソースは、次のような感じです。
<?php
$curl = curl_init();
$query_ar = [
];
$query = json_encode($query_var);
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.notion.com/v1/databases/【データベースID】/query",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Notion-Version: 2022-06-28",
"accept: application/json",
'Authorization: Bearer ' . '【シークレットトークン】'
],
CURLOPT_POSTFIELDS => $query
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$response = json_decode($response);
print_r($response);
}
「データベースID」と「シークレットトークン」を、先ほど取得しておいた文字列に置き換えましょう。これで正しく動作すれば、画面に取得した内容がPHPのオブジェクトの形式で表示されます。
後はこのデータを処理して、PHPで利用していきましょう。
コメントを残す