voryx / slack-wamp
Slack to WAMP Publishing Bridge
Requires
- php: ^7.0
- reactivex/rxphp: ^2.0
- rx/http: ^2.1
- rx/operator-extras: ^2.0
- rx/thruway-client: ^3.0
This package is auto-updated.
Last update: 2024-11-27 03:38:35 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]); });