Webhookの主語と目的語がわからんのではっきりさせる
いっつも迷ってなあなあなのではっきりさせる
サービスSの、処理Aに関するWebhookとは
「Sの何らかの処理A」にはさむ処理Xのこと
途中ではさんでいるからフック
処理Xはこんな感じ
POSTリクエストを行う
POSTするパラメータとして、処理Aで使っていたデータが使える
つまり利用者は
サービスSの処理Aをするタイミングで、ついでに処理したい事柄Xがあるときに
こうする
1: 処理したい事柄Xを何らかのサービスとして実装して、「このURLにこのパラメータ入れて叩けば発動します」という口を用意しておく
2: サービスSの処理Aに関するWebhookをつくる
このとき、URLを与えろと言われるはずなので、1のURLを与える
こうしておけば、
サービスSの処理Aが走ったときに、Webhookに設定されたURLにも(処理Aで使ったデータを)投げてくれる
処理Xの口に投げられるわけだから、処理Xも発動する
つまり、サービスSの処理Aが走ったら処理Xも走る、という連携が事実上できている
カスタムのコールバックを用いてウェブページやウェブアプリケーションの動作を追加または変更するための方法
webhookは「ユーザー定義のHTTPコールバック」である。通常、コードをリポジトリにプッシュしたときや、コメントがブログに投稿されたときなどのイベントによってトリガーされる。イベントが発生すると、ソースサイトはwebhook用に設定されたURLにHTTPリクエストを送信する。ユーザーは、あるサイトのイベントによって、別のサイトの動作を呼び出すように設定できる。
わかんね
例えばGitHubのWebhookはリポジトリにプッシュ時、コミット情報をパラメータとしてPOSTリクエストする。
githubのwebhookは誰が持っている?
postリクエストは誰が誰にする?
「SlackのWebhook使おうぜ!」と言われたら「ユーザーが投稿などをした際に、Slackが指定したURLにPOSTリクエストしてくれるから、それ使おうぜ!」と言っているものだと思えば良いと思います。
良いsta.icon*2
投石機をイメージするとわかりやすい言うてる