Download the PHP package portlandlabs/slackbot without Composer
On this page you can find all versions of the php package portlandlabs/slackbot. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download portlandlabs/slackbot
More information about portlandlabs/slackbot
Files in portlandlabs/slackbot
Package slackbot
Short Description A Slackbot that uses the slack RTM API and the slack web API. Built on PSR components
License MIT
Informations about the package slackbot
Slackbot
This SlackBot is a fully featured slack bot in the style of old IRC bots with the power of new fancy bots. You can react
to arbitrary messages like tracking emojis in a message like "Giving some :heart: to @user", or build simple call and response style messages like @bot dosomething
Getting Started
Setup
First configure your slackbot by copying .env.dist
to .env
and configuring the required details
Running the bot
The Slackbot is powered by a single PHP script, run it to get started:
Permissions and Roles
Slackbot actions are managed by roles
. The available roles are Bot
, User
, and Admin
Role | Extends | How to Access |
---|---|---|
User |
- |
Don't be a bot |
Admin |
User |
Use the bot in the configured Admin channel |
Bot |
- |
Send a message through the Slack Web API with as_user disabled |
Commands
Commands are triggered by events flowing through the RTM
API. Any event with the type message
will flow through the
command stack.
A basic command defines ->shouldHandle(Message $message)
and ->handle(Message $message)
, but SimpleCommand
makes
things a little easier to implement. Commands that extend SimpleCommand
work much the same as console commands.
Declare your $signature
property and a run(Message $message, ArgumentManager $manager)
method, and the super class
will manage hooking everything up.
Adding commands to the bot
You can add commands to the bot through the bot's command manager:
Adding Default Commands:
We've wrapped the default commands in a simple provider:
Sending messages to slack
There are a few ways to send messages to slack from a command:
-
RTM
API with Typing indicatorWhen using the
RTM
API you have the ability to trigger typing indicators (so that slack says the bot is typing)The result of this method is a Promise that resolves when Slack acknowledges the sent message.
-
RTM
API without typingIf you don't want the (creepy) typing indicator and you want to be upfront with the fact that your bot doesn't type,
The result of this is also a Promise
-
Web
API with ability to UpdateThe
Web
API uses HTTP to send messages to slack and so can be a bit slower than using theRTM
API with the added benefit of a ton of added power.Simple Usage:
The simplest usage is with the Payload Builder:Complex Usage:
If you're looking for more power or for different endpoints, you can simply build payloads directly and send them with the API
All versions of slackbot with dependencies
ext-json Version *
ext-pcntl Version *
textalk/websocket Version ^1.2
cleentfaar/slack Version ^0.20.1
vlucas/phpdotenv Version ^2.4
buttress/collecterator Version ^1.0
league/climate Version ^3.2
illuminate/config Version ^5.4
guzzlehttp/guzzle Version ^6.3
react/promise Version ^2.5
cache/filesystem-adapter Version ^1.0
nunomaduro/collision Version ^2.0
ratchet/pawl Version ^0.3.1
illuminate/container Version ^5.7
clue/arguments Version ^2.0