Интеграция чата из 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')
})();

Как мне подключить слушателя событий на прием сообщений из Слака в мой чат? Спасибо!


Ответы (0 шт):