メディアのWebhookを設定
メディアを変更(作成/更新/削除)したタイミングでWebhook通知を行うことができます。
「メディア管理」→「メディア設定」から設定可能です。
Webhookのタイミング
各Webhookの設定時にWebhookを発行するタイミングを設定できます。
メディアの作成時
メディアを新規作成(新規アップロード)したときに通知を行います。
メディアの更新時
メディアを再アップロードしたとき/ファイル名を変更したときに通知を行います。
メディアの削除時
メディアを削除したときに通知を行います。
Webhook通知について
メディアのWebhook通知では任意のURLに対してPOSTリクエストを送信します。
あらゆるURLを指定可能ですので、リクエストを受け取った側は独自の処理を行うことが可能です。
リクエスト内容
ヘッダ
リクエストヘッダには Content-Type: application/json
が含まれます。
ボディ
リクエストボディには対象となったコンテンツやAPIの情報が含まれます。
{
service: 'someId',
type: 'new', // new または edit または delete
old: {
url: 'https://images.microcms-assets.io/assets/xxxx',
width: 100,
height: 100,
},
new: {
url: 'https://images.microcms-assets.io/assets/xxxx',
width: 100,
height: 100,
},
}
service
- 変更のあったコンテンツが属するサービスのサブドメインが入ります。type
- 変更の種類です。新規追加時はnew
、編集時はedit
、削除時はdelete
が入ります。
old
メディアの編集前もしくは削除前の内容が含まれます。メディアの新規作成時にはnull
が入ります。
old.url
- メディアのurl
が含まれます。old.width
- メディアのwidth
が含まれます。画像以外のファイルの場合はnull
が入ります。old.height
- メディアのheight
が含まれます。画像以外のファイルの場合はnull
が入ります。
new
メディアの作成後もしくは編集後の内容が含まれます。メディアの削除時にはnull
が入ります。
new.url
- メディアのurl
が含まれます。new.width
- メディアのwidth
が含まれます。画像以外のファイルの場合はnull
が入ります。new.height
- メディアのheight
が含まれます。画像以外のファイルの場合はnull
が入ります。
セキュリティについて
microCMSからの通知を受け取るサーバは一般公開をしておく必要があります。
そのため一般的には第三者からPOSTリクエストを受ける可能性も考慮した対応を行う必要があります。
具体的にはURLの設定時に?auth=XXX
などmicroCMSと受け取り側サーバにしか知り得ない値を設定しておき、
受け取り側のサーバでこの値が正しいかどうか(≒microCMSからのリクエストであるか否か)検証を行ってください。
- Information
microCMS側でWebhookリクエストのヘッダに署名値(Signiture)を付与する対応について検討を進めています。
恐れ入りますが、この機能が実装されるまでは上記のパラメータ対応にて第三者からのリクエストを防ぐような形にてご対応をお願いいたします。
- Tips
Webhookで送られてくる値の検証については、「コンテンツのWebhookを設定」のページ内にてご案内しておりますので、こちらも併せてご参照ください。
Webhookの詳細仕様
再送
Webhookの通知が、ネットワークエラーや4xx、5xxエラーにて失敗した場合でも、リトライ処理は行われません。
重複送信
Webhookの通知は、設定したタイミングにつき1回のみ行われます。
順序保証
原則として、Webhookの通知は操作の実行順に行われます。
ただし、厳密な制御は行われていないため、順序は保証されません。