- NotePM APIドキュメント
- Webhookの仕様
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://..."
}
}