如何为Symfony NexySlackBundle使用多个端点

时间:2018-06-07 12:19:04

标签: php symfony bundle slack-api symfony-3.4

我在我的symfony 3.4应用程序中使用nexylan / slack Bundle。我为 #general 频道配置了松弛的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 个答案:

答案 0 :(得分:1)

看起来捆绑包只支持1个端点。如果您想拥有多个端点,则必须分叉或发送PR。

基本上你需要做的是调整src / DependencyInjection中的两个文件。

Configuration.php中,您需要确保通过添加父array node来定义多个端点,例如称为端点。然后在NexySlackExtension内部,您可以预先通过每个端点配置,并执行与添加前缀或后缀之前相同的配置。如下所示:

$configuration = new Configuration();
$endpointConfigs = $this->processConfiguration($configuration, $configs);

foreach ($endpointConfigs['endpoints'] as $config) {
    // ....
}

您可能还希望为“默认”端点添加一些特殊处理。这应该已经成功了,虽然它可能需要一些调整,因为我没有详细查看Bundle。也许您也可以通过问题跟踪器中的故障单联系作者,他们可以帮助您撰写PR。