voryx/slack-wamp

Slack to WAMP Publishing Bridge

0.3.0 2017-11-16 00:21 UTC

This package is auto-updated.

Last update: 2024-03-27 02:18:18 UTC


README

SlackWamp is a WAMP v2 (Web Application Messaging Protocol) bridge that exposes the entire Slack API (Web API and Real Time Messaging API) as WAMP topics and RPC calls.

SlackWamp is written in PHP and uses the Thruway WAMP client, but can work with any of the available WAMP routers.

Install with Composer

$ composer require "voryx/slack-wamp":"dev-master"

PHP SlackWamp Bridge Usage

<?php
require_once __DIR__ . "/vendor/autoload.php";

$token    = 'your_slack_token';
$botToken = 'your_slack_token_with_rtm:stream';
$wamp = new \Rx\Thruway\Client('wss://localhost:9090', 'realm1');

(new \SlackWamp\APIBridge($wamp, $token))->subscribe();
(new \SlackWamp\RealTimeBridge($wamp, $botToken))->subscribe();

Subscribing to messages

You'll be able to subscribe to any Slack RTM Event from any WAMP client, with the same topic name.

The response includes the entire Slack event message.

Making an RPC call

This bridge maps all of Slack's Web API Methods to WAMP RPCs.

For example, you if wanted to change your presence, the Web API call's name is users.setPresence. The WAMP RPC uses the same name except that it's all lower case and the arguments are passed through argsKW.

ie:

$wamp->call("users.setpresence", [], ["presence" => "away"])->subscribe(function ($res) {
    print_r($res[0]);
});