Интеграция чата из Slack на сайте
Всем привет! У меня есть работающий простой чат онлайн с использованием socket.io Сервер стартует из файла script.js
const express = require('express')
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
app.get('/', (req, res) => {
res.sendFile('/index.html' , { root : __dirname});
});
app.use(express.static(__dirname + '/assets'));
io.on('connection', (socket) => {
socket.on('chat message', (data) => {
io.emit('chat message', {
message: data.message,
name: data.name,
})
})
})
http.listen(3000, () => {
console.log('Server running on port 3000')
});
Файл js для рендера и приема сообщений следующий:
const socket = io();
const messages = document.querySelector('.messages');
const form = document.querySelector('.form');
const input = document.querySelector('.input');
const nameBlock = document.querySelector('.name');
const userName = window.prompt('Your name: ');
nameBlock.innerHTML = `${userName}`;
form.addEventListener('submit', (e) => {
e.preventDefault();
if (input.value) {
socket.emit('chat message', {
message: input.value,
name: userName
});
input.value = '';
};
});
socket.on('chat message', (data) => {
const item = document.createElement('li')
item.innerHTML = `<span>${data.name}</span>: ${data.message}`;
messages.appendChild(item);
window.scrollTo(0, document.body.scrollHeight);
})
Сейчас я пытаюсь интегрировать чат Слака таким же образом на прием и отправку сообщений в канал Слака.
Использую для этого @slack/web-api:
const { SocketModeClient } = require('@slack/socket-mode');
const { WebClient } = require('@slack/web-api');
const express = require('express')
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
const port = 3000;
const botToken = 'xoxb-3689*****';
const signingSecret = '2086*****';
const appToken = 'xapp-1-A0******';
const channelId = "C03M*****";
const socketModeClient = new SocketModeClient({
appToken: appToken,
});
const webClient = new WebClient(botToken);
socketModeClient.on('chat message', async ({ event }) => {
console.log(event);
});
app.get('/', (req, res) => {
res.sendFile('/index.html' , { root : __dirname});
});
app.use(express.static(__dirname + '/assets'));
io.on('connection', (socket) => {
socket.on('chat message', (data) => {
io.emit('chat message', {
message: data.message,
name: data.name,
})
})
})
http.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});
(async () => {
await socketModeClient.start();
console.log('Server WebSocket running on port 3000')
})();
Как мне подключить слушателя событий на прием сообщений из Слака в мой чат? Спасибо!