如何为 Symfony NexySlackBundle 使用多个端点
How to use multiple endpoints for Symfony NexySlackBundle
我正在为我的 symfony 3.4 应用程序使用 nexylan/slack 包。我为 #general 通道配置了 slack Incoming WebHook,它按预期工作。捆绑包配置类似于:
nexy_slack:
# If you want to use an another httplug client service.
http:
client: httplug.client
# The Slack API Incoming WebHooks URL.
endpoint: https://hooks.slack.com/services/ABCD/987ABC
channel: null
username: null
icon: null
link_names: false
unfurl_links: false
unfurl_media: true
allow_markdown: true
markdown_in_attachments: []
现在我有另一个名为 #dev 的频道,我已经添加了 Incoming WebHook 并接收了端点。我还想向开发频道发送消息。
我的问题是,如何配置开发通道端点才能使用它。有什么办法可以做到这一点?
这里是Slack Bundle
看起来捆绑包只支持 1 个端点。如果你想拥有多个端点,你要么分叉要么发送 PR。
基本上您需要做的是调整 src/DependencyInjection 中的两个文件。
在 Configuration.php
中,您需要确保可以通过添加父 array node 来定义多个端点,例如称为端点。然后在 NexySlackExtension
中,您可以通过每个端点配置进行 foreach 并执行与之前相同的配置,只需添加前缀或后缀即可。所以像:
$configuration = new Configuration();
$endpointConfigs = $this->processConfiguration($configuration, $configs);
foreach ($endpointConfigs['endpoints'] as $config) {
// ....
}
您可能还想为 "default" 端点添加一些特殊处理。这应该已经可以解决问题了,尽管它可能需要一些调整,因为我还没有详细研究 Bundle。也许你也可以通过 Issue tracker 中的工单联系作者,他们可以帮助你写 PR。
我正在为我的 symfony 3.4 应用程序使用 nexylan/slack 包。我为 #general 通道配置了 slack Incoming WebHook,它按预期工作。捆绑包配置类似于:
nexy_slack:
# If you want to use an another httplug client service.
http:
client: httplug.client
# The Slack API Incoming WebHooks URL.
endpoint: https://hooks.slack.com/services/ABCD/987ABC
channel: null
username: null
icon: null
link_names: false
unfurl_links: false
unfurl_media: true
allow_markdown: true
markdown_in_attachments: []
现在我有另一个名为 #dev 的频道,我已经添加了 Incoming WebHook 并接收了端点。我还想向开发频道发送消息。
我的问题是,如何配置开发通道端点才能使用它。有什么办法可以做到这一点?
这里是Slack Bundle
看起来捆绑包只支持 1 个端点。如果你想拥有多个端点,你要么分叉要么发送 PR。
基本上您需要做的是调整 src/DependencyInjection 中的两个文件。
在 Configuration.php
中,您需要确保可以通过添加父 array node 来定义多个端点,例如称为端点。然后在 NexySlackExtension
中,您可以通过每个端点配置进行 foreach 并执行与之前相同的配置,只需添加前缀或后缀即可。所以像:
$configuration = new Configuration();
$endpointConfigs = $this->processConfiguration($configuration, $configs);
foreach ($endpointConfigs['endpoints'] as $config) {
// ....
}
您可能还想为 "default" 端点添加一些特殊处理。这应该已经可以解决问题了,尽管它可能需要一些调整,因为我还没有详细研究 Bundle。也许你也可以通过 Issue tracker 中的工单联系作者,他们可以帮助你写 PR。