lemonmind / pimcore-message-bundle
Pimcore Message Bundle - 从 Pimcore 管理面板向 Discord、Google Chat、Slack、Telegram、电子邮件或 SMS 发送通知
Requires
- pimcore/admin-ui-classic-bundle: ^1.0
- pimcore/pimcore: ^11.0
- symfony/discord-notifier: ^6.2.8
- symfony/google-chat-notifier: ^6.2.8
- symfony/notifier: ^6.2.8
- symfony/slack-notifier: ^6.2.8
- symfony/smsapi-notifier: ^6.2.7
- symfony/telegram-notifier: ^6.2.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- phpstan/phpstan: ^1.10
- phpstan/phpstan-symfony: ^1.3
- symfony/phpunit-bridge: ^6.1
This package is auto-updated.
Last update: 2024-09-18 11:17:13 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/ 查看您的账户信息