I've a socket.io connected server on localhost:8080 and try to recieve message from Slack to display on the client side on React app.
var express = require("express");
var socket = require("socket.io");
var app = express();
const { App } = require("@slack/bolt");
const appBolt = new App({
token: "xoxb-***",
appToken:
"xapp-1-***",
socketMode: true,
});
server = app.listen(8080, function () {
console.log("server is running on port 8080");
appBolt.start(process.env.PORT || 8080);
});
io = socket(server);
io.on("connection", (socket) => {
console.log("socket.id: ", socket.id);
socket.on("SEND_MESSAGE", function (data) {
io.emit("RECEIVE_MESSAGE", data);
});
And client side on React
const socket = io("localhost:8080");
function App() {
const [message, setMessage] = useState("");
const [messages, setMessages] = useState([]);
const addMessage = (data) => {
setMessages([...messages, data]);
};
socket.on("RECEIVE_MESSAGE", (data) => {
console.log("MESSAGE_RECIEVED", data);
addMessage(data);
});
}
Could you tell me please, how to combine socket.io with Slack events api to send data? In event I recieve message from Slack.
appBolt.event('message', ({ event, say }) => {
say(`Hello world, <@${event.user}>!`);
return event;
});