errnesto / kirby-plugin-webhooks
Kirby 插件,用于注册基于 Kirby 钩的自定义 webhook
1.0.0
2020-02-17 00:21 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-24 21:59:58 UTC
README
这是一个简单的插件,允许您配置自定义 webhook。webhook 由 Kirby 钩事件触发。
替代方案
https://github.com/pju-/kirby-webhook-field
安装
下载
下载并将此存储库复制到 /site/plugins/webhooks
。
Git 子模块
git submodule add https://github.com/errnesto/kirby-plugin-webhooks.git site/plugins/webhooks
Composer
composer require errnesto/kirby-plugin-webhooks
设置
此插件会在 Kirby 的 site
对象中查找 webhook 配置。因此,要创建 webhook,您只需编辑 content/site.txt
文件。
Webhooks:
-
url: >
https://webhook.site/74a7ed53-7091-4871-a1d7-749417b24269
payload: '{"secret":"123"}'
triggers: page.create:after, page.update:after
配置必须存储在 Webhooks
键下作为 YAML 数组。
每个 webhook 需要以下选项
url
: 当触发 Kirby 钩时需要发布的 URLpayload
: POST 请求的主体triggers
: 以逗号分隔的 kirby 钩 列表
在面板中编辑 webhook 的蓝图可能如下所示
webhooks: label: Webhooks type: structure fields: url: label: URL type: url payload: label: Payload type: text triggers: label: Triggers type: tags
选项
您可以使用自己的函数自定义插件发送的请求。
每个函数都会收到以下参数
$trigger
: 导致 webhook 被调用的钩子的名称$webhook
: 从 site 对象中读取的 webhook。 (这将包括您定义的任何字段)...$params
: 从 kirby 钩 中的所有参数。
您可以通过在 /site/config/config.php
中返回它们来设置以下所有选项
getURL()
// default: return [ 'errnesto.webhooks.getURL' => function ($trigger, $webhook, ...$params) { return $webhook['url']; } ];
getHeader()
return [ // default: 'errnesto.webhooks.getHeader' => function ($trigger, $webhook, ...$params) { return "Content-type: application/json\r\n"; } ];
getMethod()
return [ // default: 'errnesto.webhooks.getMethod' => function ($trigger, $webhook, ...$params) { return "POST"; } ];
getPayload()
return [ // default 'errnesto.webhooks.getPayload' => function ($trigger, $webhook, ...$params) { return $webhook['payload']; }, ];
待办事项
- 添加自定义面板视图并将 webhook 存储在别处?
- 从
getURL
返回 null 应跳过钩子而不会导致错误 - 选项使钩子非阻塞?
许可
MIT