orukusaki/slackbundle

用于与 Slack API 通信的 Symfony2 扩展包

安装: 260

依赖: 0

建议者: 0

安全性: 0

星星: 10

关注者: 3

分支: 1

开放问题: 4

类型:symfony-bundle

0.0.1 2014-02-27 22:38 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:58:24 UTC


README

Build Status

此扩展包提供

  • 用于访问 Slack API 的 Guzzle 客户端
  • 用于监视事件循环中群组的 CLI 命令,将事件分派以处理接收到的消息
  • 用于接收斜杠命令和发送 Webhook 的控制器
  • 用于帮助您为机器人进行功能测试的 Behat 上下文类

此扩展包目前处于 alpha 阶段

安装

composer require 'orukusaki/slackbundle'

将这些行添加到您的 AppKernal::registerBundles 中

...
new Orukusaki\Bundle\SlackBundle\OrukusakiSlackBundle(),
new Misd\GuzzleBundle\MisdGuzzleBundle(),
...

向 config.yml 添加配置

orukusaki_slack:
    api_key: <Your API Key>
    identity:
        username: My Api Bot
        emoji: ":space_invader:"

接收斜杠命令和 Webhook

将扩展包添加到您的 routing.yml 中

orukusaki_slack:
    resource: "@OrukusakiSlackBundle/Controller/"
    type:     annotation
    prefix:   /slack

在 Slack 集成页面上,创建一个指向 /slack/slashcommand 的斜杠命令或一个指向 /slack/webhook 的 Webhook

作为机器人运行

app/console slack:run < 群组名称 >

添加自己的命令

添加一个事件监听器,该监听器将在收到每条消息时触发。该扩展包的 services.xml 中有几个示例

<service id="slack.listener.sayhi" class="Orukusaki\Bundle\SlackBundle\Listener\SayHiListener">
    <argument type="service" id="slack.client" />
    <tag name="kernel.event_listener" event="slack.message.received" method="handleMessageEvent" />
</service>

要查看您可以通过 API 运行的命令,请查看 Resources/config/webservices.xml

Behat 上下文

此扩展包包含一个 Behat 上下文,以帮助您为机器人创建功能测试。要使用它,您必须首先在 behat.yml 中启用 Symfony2 Behat 扩展

composer require "behat/symfony2-extension" "*"

在 behat.yml 中

default:
    extensions:
        Behat\Symfony2Extension\Extension: ~

然后在您的 FeatureContext 构造函数中导入 SlackContext

$this->useContext('slack', new \Orukusaki\Bundle\SlackBundle\Context\SlackContext());

使用

bin/behat -dl

以查看现在可用的步骤。

贡献

任何错误报告/功能请求都应在此 github 页面 上提出

欢迎 PR,请从 master 分支创建,并在提交前运行您的代码通过 phpcs(PSR-2 标准)和 phpcs-fixer。