⚙ Webhook連携の設定方法 ※こちらの操作を行えるのはオーナー・管理者のみになります。 DocBaseはチームに対する様々なアクティビティを任意のURLにJSONで通知することができます。 ## HTTP Method POST ## Content-Type application/json ## User-Agent DocBase Webhook/1.0 ## JSON payload 必ずactionという通知の種類に関するプロパティを含みます。 actionプロパティの種類については[アクティビティ一覧](#%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%93%E3%83%86%E3%82%A3%E4%B8%80%E8%A6%A7)を参照してください。 ```json { "trigger": { "name": "全員", // グループからの通知の場合はグループ名 "label": "Webhook設定画面で付けたラベル名" }, "message": "dannyさんが 「メモのタイトル」を公開しました\nhttps://kray.docbase.io/posts/1", "action": "post_publish", "disable_notification": false, "sender": { "id": 1, "name": "danny" }, "team": { "domain": "danny", "name": "danny" }, "post": { // team_joinとgroup_join以外の場合のみ "id": 1, "title": "メモのタイトル", "url": "https://kray.docbase.io/posts/1", "body": "メモの本文", "draft": false, "archived": false, "created_at": "2015-03-10T12:01:54+09:00", "updated_at": "2022-02-09T13:40:37+09:00", "tags": [ { "name": "rails" }, { "name": "ruby" } ], "scope": "group", "groups": [ { "id": 1, "name": "DocBase" } ], "user": { "id": 1, "name": "danny", "profile_image_url": "https://image.docbase.io/uploads/aaa.gif" }, "stars_count": 0, "good_jobs_count": 0, "sharing_url": null, "representative_image_url": null, "comments": [ { "id": 10, "body": "コメント", "created_at": "2022-02-09T13:40:36+09:00", "user": { "id": 2, "name": "kintaro", "profile_image_url": "https://secure.gravatar.com/avatar/hogehoge.png?d=mm&r=PG&s=128" } } ], "attachments": [] }, "comment": { // comment_createの場合のみ "id": 1, "body": "コメント", "created_at": "2015-03-09T12:01:54+09:00", "user": { "id": 1, "name": "danny", "profile_image_url": "https://image.docbase.io/uploads/aaa.gif" } }, "users": [ // team_joinかgroup_joinの場合のみ { "id": 1, "name": "danny", "profile_image_url": "https://image.docbase.io/uploads/aaa.gif" }, { "id": 2, "name": "bob", "profile_image_url": "https://image.docbase.io/uploads/bbb.gif" } ], "deleted_post": { // Webhook送信時点でメモが削除されている場合のみ "id": 1, "title": "メモのタイトル", "url": "https://kray.docbase.io/posts/1" } } ``` ### アクティビティ一覧 | action名 | 説明 | |----|----| | post_publish | メモの投稿 | | post_update | メモの更新| | post_group_update | メモの公開範囲を更新 | | post_archive | メモのアーカイブ | | post_unarchive | メモのアーカイブを解除 | | post_destroy | メモの削除 | | sharing_create | メモの共有 | | sharing_destroy | メモの共有を解除 | | comment_create | コメントがついた| | star_create | スターがついた| | like_create | グッジョブがついた | | team_join |チームに新しいメンバーが参加した| | group_join | グループに新しいメンバーが参加した | ### 特定のアクティビティにのみ入るプロパティ ||post|comment|users|deleted_post| |---|:---:|:---:|:---:|:---:| |post_publish|:heavy_check_mark: ||||| |post_update|:heavy_check_mark: |||| |post_group_update|:heavy_check_mark: |||| |post_archive|:heavy_check_mark: |||| |post_unarchive|:heavy_check_mark: |||| |post_destroy| |||:heavy_check_mark:| |sharing_create|:heavy_check_mark: |||| |sharing_destroy|:heavy_check_mark: |||| |comment_create|:heavy_check_mark: |:heavy_check_mark: || |star_create|:heavy_check_mark:|||| |like_create|:heavy_check_mark: |||| |team_join|||:heavy_check_mark: || |group_join|||:heavy_check_mark: || ## Webhook受信例 ### Rails ```ruby:config/routes.rb resources :hooks, only: [] do post :webhook, on: :collection end ``` ```ruby:app/controller/hooks_controller.rb class HooksController < ApplicationController protect_from_forgery except: [:webhook] def webhook Rails.logger.info JSON.parse(request.body.read)['message'] head :ok end end ``` ## 設定方法 ### 1. サービス連携から連携したいwebhookを選ぶ 設定からサービス連携を選んでください。 ![スクリーンショット 2019-06-05 15.59.15.png](https://image.docbase.io/uploads/6a87e3c2-e402-467f-b74b-3a66a0d971de.png =600x) ### 2. Webhook URLを設定 通知したいグループ、Webhook URL、通知するアクティビティを設定してください。複数のwebhookを設定したい場合は「新しくサービス連携を作成する」から追加してください。 ![スクリーンショット 2019-06-05 15.59.54.png](https://image.docbase.io/uploads/7e6f4773-f62a-45d5-b16a-f12ab392a74a.png =600x)