!npmnpmnpm-url
!nodenodenode-url
!depsdepsdeps-url
!teststeststests-url
!bithoundbithoundbithound-url
!bithoundscorebithoundscorebithoundscore-url
!nsp-checkednsp-checkednsp-checked-url
Location, Phone number are platform limitations.
Notes: Interactive message are only supported on app (with Oauth bot token). Set Redirect URLs (in OAuth & Permissions) to http://127.0.0.1:8080, so you can catch the token.
You can generate one for test with this command: `
Slack can also be used with your existing express setup.
Options available
| name | Type | default | Description | | ---------------- |:--------:| :--------: | --------------------------| | serviceID | string | random | Arbitrary identifier of the running instance | | logLevel | string |
This will open your default web browser and guide you to obtain the needeed token (easily spotted starting with:
This project is licensed under the AGPL 3, which can be found here.
Broid Slack Integration
Broid Integrations is an open source project providing a suite of Activity Streams 2 libraries for unified communications among a vast number of communication platforms.Connect your App to Multiple Messaging Channels with One OpenSource Language.
Message types supported
| Simple | Image | Video | Buttons | Location | Phone number | |:------:|:-----:|:-----:|:-------:|:--------:|:------------:| | ✅ | ✅ | ✅ | ✅ | | |Location, Phone number are platform limitations.
Getting started
Register your app/bot on Slack
- Instructions to create bot, can be found here.
- Instructions to create app, can be found here.
Notes: Interactive message are only supported on app (with Oauth bot token). Set Redirect URLs (in OAuth & Permissions) to http://127.0.0.1:8080, so you can catch the token.
You can generate one for test with this command: `
node bin/oauth.js --new -c client_id -s secret_id
`Install
npm install --save @broid/slack
Connect to Slack
const BroidSlack = require('@broid/slack');
const slack = new BroidSlack({
token: 'xxxxx',
http: {
host: '127.0.0.1',
port: 8080
}
});
slack.connect()
.subscribe({
next: data => console.log(data),
error: err => console.error(`Something went wrong: ${err.message}`),
complete: () => console.log('complete'),
});
Slack can also be used with your existing express setup.
const BroidSlack = require('@broid/slack');
const express = require("express");
const slack = new BroidSlack({
token: 'xxxxx'
});
const app = express();
app.use("/slack", slack.getRouter());
slack.connect()
.subscribe({
next: data => console.log(data),
error: err => console.error(`Something went wrong: ${err.message}`),
complete: () => console.log('complete'),
});
app.listen(8080);
Options available
| name | Type | default | Description | | ---------------- |:--------:| :--------: | --------------------------| | serviceID | string | random | Arbitrary identifier of the running instance | | logLevel | string |
info
| Can be : fatal
, error
, warn
, info
, debug
, trace
|
| token | string | | Your access token |
| http | object | | WebServer options (host
, port
) |Generate the "Bot User Token"
broid-slack
needs the "Bot User Token" to authenticate against the Slack RTM and Web Client. To obtain this client, you can use the script at bin/oauth.js
. You will need your "Client ID" and your "Client Secret":$ ./oauth.js --new --clientID xxxxxxxxxxxxxxxxxxxxxxxxx --clientSecret yyyyyyyyyyyyyyyyyyyyyyyyyyyy
This will open your default web browser and guide you to obtain the needeed token (easily spotted starting with:
xoxp-
). Alternatively you can obtain a "Legacy Token" here.Receive a message
slack.listen()
.subscribe({
next: data => console.log(`Received message: ${data}`),
error: err => console.error(`Something went wrong: ${err.message}`),
complete: () => console.log('complete'),
});
Post a message
To send a message, the format should use the broid-schemas.const formatted_message = {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Create",
"generator": {
"id": "f6e92eb6-f69e-4eae-8158-06613461cf3a",
"type": "Service",
"name": "slack"
},
"object": {
"type": "Note",
"content": "hello world"
},
"to": {
"type": "Person",
"id": "C1E3X0RRB"
}
};
slack.send(formatted_message)
.then(() => console.log("ok"))
.catch(err => console.error(err));
Buttons supported
This adapter support the interactive messagesExamples of messages
You can find examples of sent and received messages at Broid-Schemas.Contributing to Broid
See CONTRIBUTE.mdCopyright & License
Copyright (c) 2016-2017 Broid.aiThis project is licensed under the AGPL 3, which can be found here.