waldhacker/hooky

此包已被弃用,不再维护。未建议替代包。

TYPO3 扩展,用于配置各种事件发送的 webhooks。

安装: 2

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:typo3-cms-extension

dev-main 2021-12-28 16:19 UTC

This package is auto-updated.

Last update: 2024-05-12 18:44:57 UTC


README

为 TYPO3 中的任何事件发送 webhooks - 使其能够与 automate.io、Zapier 等第三方服务一起使用。

安装

此扩展仅作为 composer 包提供,因为它使用了 enqueue 包来处理消息队列,该包作为 composer 依赖项安装。

composer req waldhacker/hooky

配置

该扩展包含一个自定义的后端模块,允许创建新的 webhooks。默认情况下,它知道两种类型的事件 - 记录更新或创建 - 并将原始数据作为消息体发送。在大多数情况下,您将想要使用自定义事件 - 请参阅下面的说明。

输入目标 URL 和(可选)webhook 的密钥,并选择要监听的事件。

使用以下两个命令(理想情况下通过调度程序、cron 或 system.d 定期运行)来触发消息队列的处理和消息发送:

  • ./bin/typo3 hooky:hooks:queue - 将检查是否有配置了事件的钩子,并为每个配置的钩子排队一条消息。
  • ./bin/typo3 hooky:hooks:send - 将处理队列并发送钩子请求

钩子签名

钩子请求使用配置的密钥进行签名,该密钥以 base64 编码的形式发送到头文件 X-TYPO3-HookSignature。为了在接收端验证内容,创建到达内容的哈希并与头文件进行比较。

示例:hash_hmac('sha256', $content, $secret)

使用自定义事件

触发钩子的事件需要满足两个要求:

  • 它需要实现接口 JsonSerializable
  • 它需要在 DI 配置中标记为可钩子的事件

由 jsonSerialize 返回的数据将是 webhook 消息体中的数据。

DI 配置看起来如下 - 以下是从此扩展直接取出的示例

  Waldhacker\Hooky\Events\RecordUpdatedEvent:
    tags:
      - name: hooky.hookable
        label: 'LLL:EXT:hooky/Resources/Private/Language/hooky.xlf:event.recordUpdated.label'
        description: 'LLL:EXT:hooky/Resources/Private/Language/hooky.xlf:event.recordUpdated.description'

标签和描述将在 TYPO3 后端选择 webhook 配置中的事件时显示。

在许多情况下,您可能需要实现一个事件监听器以响应 TYPO3 核心事件,并让该事件监听器分发您的自定义事件,该事件是可钩子和可序列化的。例如:您可以为文件上传事件添加事件监听器,并通过 webhook 自动通知外部图像服务。