概要

NotionをHTTPリクエストを利用して設定するための例として、データベースのデータを取得とレコードの更新方法について記載します。

ご利用方法

HTTPリクエストの設定例

共通

データベースのレコードは、一つのページとしてみなされ、以下のpageの取得を行うエンドポイントを利用します。

Pageのidが必要となります。Pageのidについては、Notionのレコードを選択した際に表示されるURLの以下の部分です。

データベースのレコード情報を取得する

1.HTTPリクエストの画面を以下のように設定してください。

 **メソッド:**GET

 E****ndpoint:https://api.notion.com/v1/pages/{ページのIDがここに記載します。 }

  ※左記の例では、テーブルのレコードを更新した際にWebhookで送信された、取得した「data.id」の変数を入れています。

 Authorizationタブ

 Type:None※他の設定はありません

 Headersタブ keyとValueに以下のように記載してください。

 1行目 key:Authorization Value:Bearer {APIキーを記載してください。}※BearerとAPIキーの間は半角スペースが必要です。

 2行目 key:Notion-Version Value:2022-06-28

 3行目 key:Content-Type Value:application/json
**Bodyタブ:**記載不要

**Paramsタブ:**記載不要

ご注意

APIキーの取得方法

認証を行うためのAPIキーをNotionから取得します。

1.Notionの設定からインテグレーションのページにアクセスします。
 https://www.notion.so/profile/integrations

2.新しいインテグレーションをクリックします。

3.インテグレーションの情報を入力して、「保存」をクリックします。

・インテグレーション名: 任意の名前

・関連ワークスペース: 自身のNotionを選択

・種類:「内部」を選択

・ロゴ:任意の画像写真

4.インテグレーションが作成されますので、「×」で閉じます。

5.インテグレーションの設定画面に遷移します。「アクセス」をクリックしてください。

6.アクセスタブのページのアクセスの編集をクリックします。

7.APIを利用してアクセスする対象を選択して、アクセスの更新をクリックします。

7.「設定」のタブを選択して、「内部インテグレーションシークレット」部分の「表示」をクリックします。

8.イテグレーションシークレットの値が表示されます。こちらをコピーしてAPIキーとして利用します。

2.テスト送信を行います。テスト送信をクリックして、一度レスポンスを取得します。

テスト送信の際、変数を設定している場合、以下のように表示されています。赤枠部分を削除してPageのidに置き替えます。

3.変数設定を行ってください。

プロパティの情報を変数にしたい場合は、properties配下の情報となるため以下のように設定します。

保存するをクリックしてください。

以上で、データベースのレコード情報を取得するための設定は完了です。

データベースのレコード情報(プロパティの情報)を更新する

1.HTTPリクエストの画面を以下のように設定してください。

メソッド:PATCH

 E****ndpoint:https://api.notion.com/v1/pages/{ページのIDがここに記載します。 }

  ※左記の例では、テーブルのレコードを更新した際にWebhookで送信された、取得した「data.id」の変数を入れています。

 Authorizationタブ

 Type:None※他の設定はありません

 Headersタブ keyとValueに以下のように記載してください。

 1行目 key:Authorization Value:Bearer {APIキーを記載してください。}※BearerとAPIキーの間は半角スペースが必要です。

 2行目 key:Notion-Version Value:2022-06-28

 3行目 key:Content-Type Value:application/json  

Params**タブ:**記載不要

Bodyタブ:Content: 更新したいプロパティとその新しい値をJSON形式で指定します。properties オブジェクトの中に、更新したいプロパティの

     正確なプロパティ名をキーとして記述し、その値にはプロパティタイプに応じたJSON構造を設定します。

<Bodyの設定例>

数値のプロパティで、プロパティ名が「コード」の場合の設定例となります。

 ボディの基本的な構造は、以下となります。

  1. {
  2. "properties": {
  3. "プロパティ名1": {
  4. "プロパティタイプに応じたキー": "新しい値"
  5. },
  6. "プロパティ名2": {
  7. "プロパティタイプに応じたキー": "新しい値"
  8. }
  9. // ... 他のプロパティ
  10. }
  11. **}
    **

2.テスト送信を行います。テスト送信をクリックして、更新できれるか確認してください。

テスト送信の際、変数を設定している場合、以下のように表示されています。赤枠部分を削除してPageのidに置き替えます。

**
以上で、設定としては完了です。Bodyを設定した後は、テスト送信でお試しください。
**

**また、Notionのプロパティタイプごとの設定については、以下を参照してください。
**

**<プロパティタイプごとの値の指定例>
**

 Notionのプロパティは多様なタイプがあるため、それぞれのタイプに応じた正しいJSON構造で値を指定する必要があります。

・Title (タイトル)  データベースのタイトルプロパティを更新する場合。

  1. {
  2. "properties": {
  3. "Name": { // プロパティ名が "Name" の場合
  4. "title": [
  5. {
  6. "text": {
  7. "content": "新しいタイトル"
  8. }
  9. }
  10. ]
  11. }
  12. }
  13. }

・Rich Text (テキスト)  テキストプロパティを更新する場合。テキストプロパティを更新する場合。

  1. {
  2. "properties": {
  3. "Description": { // プロパティ名が "Description" の場合
  4. "rich_text": [
  5. {
  6. "text": {
  7. "content": "これは新しい説明文です。"
  8. }
  9. }
  10. ]
  11. }
  12. }
  13. }

**・Number (数値)
**

  1. {
  2. "properties": {
  3. "Priority": { // プロパティ名が "Priority" の場合
  4. "number": 5
  5. }
  6. }
  7. }

**・**Select (選択肢)  既存の選択肢の中から設定する場合。

  1. {
  2. "properties": {
  3. "Status": { // プロパティ名が "Status" の場合
  4. "select": {
  5. "name": "完了" // 既存の選択肢の名前
  6. }
  7. }
  8. }
  9. }

・Multi-select (複数選択)  複数の選択肢を設定する場合。

  1. {
  2. "properties": {
  3. "Tags": { // プロパティ名が "Tags" の場合
  4. "multi_select": [
  5. { "name": "重要" },
  6. { "name": "プロジェクトA" }
  7. ]
  8. }
  9. }
  10. }

**・**Status (ステータス)  ステータスプロパティを更新する場合。

  1. {
  2. "properties": {
  3. "Project Status": { // プロパティ名が "Project Status" の場合
  4. "status": {
  5. "name": "In progress" // ステータスオプションの名前
  6. }
  7. }
  8. }
  9. }

・Date (日付) 特定の日付を設定する場合。タイムゾーンは任意で設定。

  1. {
  2. "properties": {
  3. "Due Date": { // プロパティ名が "Due Date" の場合
  4. "date": {
  5. "start": "2025-12-31",
  6. "end": null, // 期間を設定しない場合は null
  7. "time_zone": "Asia/Tokyo" // 任意。例: "Asia/Tokyo", "America/New_York"
  8. }
  9. }
  10. }
  11. }

・**Checkbox (チェックボックス)
**

  1. {
  2. "properties": {
  3. "Completed": { // プロパティ名が "Completed" の場合
  4. "checkbox": true
  5. }
  6. }
  7. }

**・URL
**

  1. {
  2. "properties": {
  3. "Link": { // プロパティ名が "Link" の場合
  4. "url": "https://example.com/new-link"
  5. }
  6. }
  7. }