lemonmind/pimcore-message-bundle

Pimcore Message Bundle - 从 Pimcore 管理面板向 Discord、Google Chat、Slack、Telegram、电子邮件或 SMS 发送通知

2.0.1 2023-05-18 08:17 UTC

README

这是一个 Pimcore Bundle,可以从 Pimcore 管理面板向 Discord、Google Chat、Slack、Telegram、电子邮件或 SMS 发送通知

安装

首先,您需要将通知器添加到您的 config/config.yaml 文件中,否则捆绑包无法正确安装

framework:
    notifier:
        chatter_transports:
            slack: '%env(SLACK_DSN)%'
            googlechat: '%env(GOOGLECHAT_DSN)%'
            discord: '%env(DISCORD_DSN)%'
            telegram: '%env(TELEGRAM_DSN)%'
        texter_transports:
            smsapi: '%env(SMSAPI_DSN)%'

然后,您可以安装并启用捆绑包

composer require lemonmind/pimcore-message-bundle
// config/bundles.php

LemonmindMessageBundle::class => ['all' => true]

最后,在您的 config/config.yaml 文件中,您需要添加以下内容

lemonmind_message:
    allowed_chatters: googlechat,discord,slack,telegram,email,sms
    classes:
        Pimcore\Model\DataObject\YOUR_CLASS:
            fields_to_send: series,Carclass,country,price,bodystyle,manufacturer
            email_to_send: some@email.com
            sms_to: PHONE_NUMBER

其中

  • YOUR_CLASS: 是发送通知的类
  • fields_to_send 是用逗号分隔的类字段,没有空格
  • email_to_send 是您想要发送通知的电子邮件
  • sms_to 是您想要发送通知的手机号码

您可以添加多个类,从这些类中发送通知
您需要使用 allowed chatters 选项指定哪些聊天者应该可用

示例

lemonmind_message:
    allowed_chatters: googlechat,discord,slack,telegram,email,sms
    classes:
        Pimcore\Model\DataObject\Car:
            fields_to_send: series,Carclass,country,price,bodystyle,manufacturer
            email_to_send: some@email.com
            sms_to: PHONE_NUMBER
        Pimcore\Model\DataObject\Manufacturer:
            fields_to_send: name

正确安装后,发送通知的按钮应该只在你之前定义的类中可见

点击按钮后,应该会出现一个模态窗口,您可以在其中选择要将通知发送到何处,并向消息添加附加信息。

异步消息

MessageBundle 可以通过 Symfony Messenger 组件 发送异步消息。要实现这一点,您需要在 config/config.yaml 文件中添加以下行

framework:
    messenger:
        transports:
            async: "%env(MESSENGER_TRANSPORT_DSN)%"
        routing:
            'LemonMind\MessageBundle\Message\CreateNotification': async

同样,在您的 .env 文件中添加以下内容

MESSENGER_TRANSPORT_DSN=doctrine://default

其中

  • MESSENGER_TRANSPORT_DSN 是您的消息传递传输 dsn。它可以是一个 redis、RabbitMQ 或数据库

最后,您需要开始消费消息。为此,在您的 php 容器中运行以下命令

php bin/console messenger:consume async

不建议长时间运行此进程。更好的方法是使用 supervisord

Discord

要将此捆绑包与 Discord 集成,您需要将 dsn 添加到您的 .env 文件中

DISCORD_DSN=discord://TOKEN@default?webhook_id=ID

其中

  • TOKEN 是您的 webhook(返回给 Incoming Webhooks)的安全令牌
  • ID 是 webhook 的 id

示例消息

Google Chat

要将此捆绑包与 Google Chat 集成,您需要将 dsn 添加到您的 .env 文件中

GOOGLE_CHAT_DSN=googlechat://ACCESS_KEY:ACCESS_TOKEN@default/SPACE?thread_key=THREAD_KEY

其中

  • ACCESS_KEY 是您的 Google Chat webhook 访问密钥
  • ACCESS_TOKEN 是您的 Google Chat webhook 访问令牌
  • SPACE 是 Google Chat 空间
  • THREAD_KEY 是将消息组合成单个线程的 Google Chat 消息线程(可选)

示例消息

Slack

要将此捆绑包与 Slack 集成,您需要将 dsn 添加到您的 .env 文件中

SLACK_DSN=slack://TOKEN@default?channel=CHANNEL

其中

  • TOKEN 是您的 Bot User OAuth Access Token(它们以 xoxb- 开头)
  • CHANNEL 是要发送消息的频道、私人组或 IM 频道,它可以是编码 ID 或名称。

示例消息

Telegram

要将此捆绑包与 Telegram 集成,您需要将 dsn 添加到您的 .env 文件中

TELEGRAM_DSN=telegram://TOKEN@default?channel=CHAT_ID

其中

  • TOKEN 是您的 Telegram 令牌
  • CHAT_ID 是您的 Telegram 群聊 ID(以 - 开头)

您需要在 Telegram 上联系 BotFather 来开始创建您的机器人。然后将机器人添加到您希望其发送消息的群组中

示例消息

电子邮件

要将此包与电子邮件集成,您需要像使用常规 Pimcore 电子邮件一样进行准备。

示例消息

SMSAPI

要将此包与 SMSAPI 集成,您需要在您的 .env 文件中添加 dsn

SMSAPI_DSN=smsapi://TOKEN@default?from=FROM&fast=FAST&test=TEST

其中

  • TOKEN 是您的 API 令牌(OAuth)
  • FROM 是发送者名称
  • FAST 参数设置为 1(默认 0)将导致以最高优先级发送消息,这确保了最快的可能交付时间。注意!快速消息比普通消息费用更高。
  • TEST 参数设置为 1(默认 0)将导致以测试模式发送消息(消息被验证,但不会发送)。

您可以在 https://ssl.smsapi.pl/ 查看您的账户信息