2017 © Pedro Peláez
 

library php-slack-bot-vpatch

Slack bot user written in PHP

image

valerijv/php-slack-bot-vpatch

Slack bot user written in PHP

  • Wednesday, May 11, 2016
  • by valerijv
  • Repository
  • 1 Watchers
  • 1 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 55 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

PHP Slack Bot

A simple bot user written in PHP using the Slack Real Time Messaging API https://api.slack.com/rtm, (*1)

Installation

With Composer, (*2)

Create a new composer.json file and add the following, (*3)

{
    "minimum-stability" : "dev",
    "require": {
        "valerijv/php-slack-bot-vpatch": "dev-master"
    }
}

Then run, (*4)

composer install

Usage

require 'vendor/autoload.php';
use PhpSlackBot\Bot;

// Custom command
class MyCommand extends \PhpSlackBot\Command\BaseCommand {

    protected function configure() {
        $this->setName('mycommand');
    }

    protected function execute($message, $context) {
        $this->send($this->getCurrentChannel(), null, 'Hello !');
    }

}

$bot = new Bot();
$bot->setToken('TOKEN'); // Get your token here https://my.slack.com/services/new/bot
$bot->loadCommand(new MyCommand());
$bot->run();

Example commands

Example commands are located in src/PhpSlackBot/Command/, (*5)

Ping Pong Command

Type ping in a channel and the bot should answer "Pong" to you., (*6)

Count Command

Type count several times in a channel and the bot should answer with 1 then 2..., (*7)

Date Command

Type date in a channel and the current date., (*8)

Planning Poker Command

https://en.wikipedia.org/wiki/Planning_poker, (*9)

Type pokerp start in a public channel with your team in order to start a planning poker session., (*10)

Direct message the bot with pokerp vote number. The bot will record your vote., (*11)

Type pokerp status to see the current status of the session (who has voted)., (*12)

Type pokerp end in a public channel and the bot will output each vote., (*13)

Load your own commands

You can load your own commands by implementing the \PhpSlackBot\Command\BaseCommand., (*14)

Then call PhpSlackBot\Bot::loadCommand method for each command you have to load., (*15)

"Catch All" command

If you need to execute a command when an event occurs, you can set up a "catch all" command., (*16)

This special command will be triggered on all events and all other commands will be ignored., (*17)

require 'vendor/autoload.php';
use PhpSlackBot\Bot;

// This special command executes on all events
class SuperCommand extends \PhpSlackBot\Command\BaseCommand {

    protected function configure() {
        // We don't have to configure a command name in this case
    }

    protected function execute($data, $context) {
        if ($data['type'] == 'message') {
            $channel = $this->getChannelNameFromChannelId($data['channel']);
            $username = $this->getUserNameFromUserId($data['user']);
            echo $username.' from '.($channel ? $channel : 'DIRECT MESSAGE').' : '.$data['text'].PHP_EOL;
        }
    }

}

$bot = new Bot();
$bot->setToken('TOKEN'); // Get your token here https://my.slack.com/services/new/bot
$bot->loadCatchAllCommand(new SuperCommand());
$bot->run();

Incoming webhooks

The bot can also listen for incoming webhooks., (*18)

Commands are triggered from users messages inside Slack and webhooks are triggered from web post requests., (*19)

Custom webhooks can be loaded using the PhpSlackBot\Bot::loadWebhook method., (*20)

This is useful if you need to control the bot from an external service. For example, with IFTTT https://ifttt.com/maker, (*21)

To enable webhooks, use the enableWebserver method before the run method., (*22)

You can also set a secret token to prevent unauthorized requests., (*23)

$bot->enableWebserver(8080, 'secret'); // This will listen on port 8080
$bot->run();

Then, use the parameter "name" to trigger the corresponding webhook :, (*24)

curl -X POST --data-urlencode 'auth=secret' --data-urlencode 'name=output' --data-urlencode 'payload={"type" : "message", "text": "This is a message", "channel": "#general"}' http://localhost:8080

The Versions

11/05 2016

dev-master

9999999-dev https://github.com/valerijv/php-slack-bot-vpatch

Slack bot user written in PHP

  Sources   Download

The Requires

 

by Avatar jclg
by valerij