orukusaki / slackbundle
用于与 Slack API 通信的 Symfony2 扩展包
0.0.1
2014-02-27 22:38 UTC
Requires
- php: >=5.4
- misd/guzzle-bundle: 1.1.*
- symfony/symfony: ~2.4
This package is not auto-updated.
Last update: 2024-09-24 01:58:24 UTC
README
此扩展包提供
- 用于访问 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。