Webhook
概要
「scrapboxの編集履歴の通知って出来るんかな?」と思って調べたら色々出てきたのでちょっと記事纏めます。
ちなみに編集履歴を確認するのなら左上の/Iconsummaraize/Scrapbox.iconからStreamを選択すれば確認できます。
Webhookとは
サーバー上で特定のイベント(編集とかリポジトリにプッシュなど)が発生した際に、サーバーから他のクライアント(アプリケーションなど)へリアルタイム提供(指定したURLにPOSTリクエスト)する仕組み
主な使い方としては、「お気に入りのブログが記事を更新した際にSNS(SlackやDiscodなど)に通知をする」事や、「重要なメールを拾って通知をする」といった使い方がある。
APIと何が違うの?
Webhookは事前に決められた基準を満たした際に何らかの反応を返す。
→もっと具体的に説明をすると...
例1)あるサーバー上のデータが更新されたのを知りたいとする。
APIの場合: 更新されたかという事を、APIに指示を出して確認をする必要がある。 https://gyazo.com/526c57b4c644522e035e9e259bf610f9
Webhookの場合: 最初に「更新されたら教えてね」という指示を出しておく。すると、更新される度に「更新があるよ」と教えてくれる。
https://gyazo.com/18ac18833dd2458e87d8af356c65396c
例2)
通知をオンにしている場合は、webhookを使っているような状態。こちらからアプリを確認せずとも、更新があれば通知をしてくる。
通知をオフにしている場合は、APIを使っているような状態。いちいちアプリを起動しなければ更新を知ることは出来ない。
Webhookを利用すると出来ること
GitHubやSlack、DiscodなどのサービスのWebhookを利用すると、ユーザーはサービス側がPOSTリクエストするURLを指定できる。 例えを使って言い換えると、「GitHubのWebhookを利用して、GitHubのPOSTリクエスト先にコミット情報をSlackに通知するURLを指定する」みたいな感じ? ScrapboxにWebhookの実装方法(Discod)
参考リンク
気になるリンク