Webhookの仕様

Webhookの概要

NotePMではページやコメントの登録・更新時に、あらかじめ指定されたURLに対してHTTPリクエストを送信することができます。

設定方法

1. ノート編集からwebhookを選ぶ

ノート編集画面からサービス連携の追加を選んでください。

2. Webhook URLを設定

サービス連携追加からWebhookを選択し、通知の設定をしてください。

リクエストの詳細

HTTP Method

POST

Request Headers

Content-Type

application/json

User-Agent

NotePM-Webhook/1.0

X-NotePM-Delivery

aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
リクエストに対する一意のID

X-NotePM-Signature

sha256=143df573f35bbe6cf36b33c113cd966e71ab1a1b59b6f0201fba24407a2701fa

Webhookの設定画面でSecretを設定した場合にこのヘッダが送信されます。
JSON PayloadをSha256アルゴリズム(SecretをHMACキー)でハッシュ化した値となります。
JSON Payloadの改竄チェックに使用してください。

コマンドでHMAC-SHA256の値を算出方法
echo -n 'JSON Payload'  | openssl dgst -sha256 -hmac "SECRET"
具体例(結果は上記例の値と一致)
$ echo -n '{"action":"ping","team":{"domain":"projectmode","name":"project mode, Inc"},"message":"\u30c6\u30b9\u30c8\u9001\u4fe1"}'  | openssl dgst -sha256 -hmac "test"
143df573f35bbe6cf36b33c113cd966e71ab1a1b59b6f0201fba24407a2701fa

Request Body

JSON形式でPayloadが設定されます。

アクション一覧

action名 内容
ping テスト送信
page_created ページ新規作成
page_updated ページ更新
comment_created コメント追加

テスト送信

{
  "action": "ping",
  "team": {
    "domain": "notepm",
    "name": "NotePM"
  },
  "message": "テスト送信"
}

ページ新規作成

{
  "action": "page_created",
  "team": {
    "domain": "notepm",
    "name": "NotePM"
  },
  "page": {
    "page_code": "12345abcdf",
    "title": "タイトル名",
    "body": "ページ内容",
    "url": "https://domain.notepm.jp/page/12345abcdf",
    "note": {
      "note_code": "12345abcdf",
      "name": "ノート名",
      "description": "変更履歴メモ",
      "url": "https://domain.notepm.jp/note/12345abcdf"
    },
    "folder": {
      "name": "フォルダ名"
    },
    "tags": [
      {
        "name": "タグ1"
      }
    ],
    "created_at": "2020-01-01T00:00:00Z",
    "updated_at": "2020-01-01T00:00:00Z"
  },
  "user": {
    "user_code": "1234567890",
    "name": "作成者名",
    "profile_image_url": "https://..."
  }
}

ページ更新

{
  "action": "page_updated",
  "team": {
    "domain": "notepm",
    "name": "NotePM"
  },
  "page": {
    "page_code": "12345abcdf",
    "title": "タイトル名",
    "body": "ページ内容",
    "url": "https://domain.notepm.jp/page/12345abcdf",
    "note": {
      "note_code": "12345abcdf",
      "name": "ノート名",
      "description": "変更履歴メモ",
      "url": "https://domain.notepm.jp/note/12345abcdf"
    },
    "folder": {
      "name": "フォルダ名"
    },
    "tags": [
      {
        "name": "タグ1"
      }
    ],
    "created_at": "2020-01-01T00:00:00Z",
    "updated_at": "2020-01-01T00:00:00Z"
  },
  "user": {
    "user_code": "1234567890",
    "name": "更新者名",
    "profile_image_url": "https://..."
  }
}

コメント追加

{
  "action": "comment_created",
  "team": {
    "domain": "notepm",
    "name": "NotePM"
  },
  "comment": {
    "number": 1,
    "comment": "コメント",
    "page": {
      "page_code": "12345abcdf",
      "title": "タイトル",
      "body": "テスト",
      "url": "https://domain.notepm.jp/page/12345abcdf",
      "note": {
        "note_code": "12345abcdf",
        "name": "ノート名",
        "description": "変更履歴メモ",
        "url": "https://domain.notepm.jp/note/12345abcdf"
      },
      "folder": {
        "name": "フォルダ名"
      },
      "tags": [
        {
          "name": "タグ1"
        }
      ],
      "created_at": "2020-01-01T00:00:00Z",
      "updated_at": "2020-01-01T00:00:00Z"
    }
  },
  "user": {
    "user_code": "1234567890",
    "name": "コメントした人",
    "profile_image_url": "https://..."
  }
}