class_docstr: A class for handling connections and interactions with Slack API.
  Agrs:
      bot_token(str): The bot token for the Slack app.
code: def subscribe(self, stop_event, callback, table_name, **kwargs):
      if table_name != "channels":
          raise RuntimeError(f"Table not supported: {table_name}")
  
      self._socket_mode_client = SocketModeClient(
          # This app-level token will be used only for establishing a connection
          app_token=self.connection_args[
              "app_token"
          ],  # xapp-A111-222-xyz
          # You will be using this WebClient for performing Web API calls in listeners
          web_client=WebClient(
              token=self.connection_args["token"]
          ),  # xoxb-111-222-xyz
      )
  
      def _process_websocket_message(
          client: SocketModeClient, request: SocketModeRequest
      ):
          # Acknowledge the request
          response = SocketModeResponse(envelope_id=request.envelope_id)
          client.send_socket_mode_response(response)
  
          if request.type != "events_api":
              return
  
          payload_event = request.payload["event"]
          if payload_event["type"] != "message":
              return
          if "subtype" in payload_event:
              # Don't respond to message_changed, message_deleted, etc.
              return
          if payload_event["channel_type"] != "im":
              # Only support IMs currently.
              return
          if "bot_id" in payload_event:
              # A bot sent this message.
              return
  
          key = {
              "channel": payload_event["channel"],
          }
          row = {
              "text": payload_event["text"],
              "user": payload_event["user"],
          }
  
          callback(row, key)
  
      self._socket_mode_client.socket_mode_request_listeners.append(
          _process_websocket_message
      )
      self._socket_mode_client.connect()
  
      stop_event.wait()
  
      self._socket_mode_client.close()
  
imports: import os
  from datetime import datetime, timezone
  import ast
  from typing import List
  import pandas
  from slack_sdk import WebClient
  from slack_sdk.errors import SlackApiError
  from slack_sdk.web.slack_response import SlackResponse
  from slack_sdk.socket_mode import SocketModeClient
  from slack_sdk.socket_mode.request import SocketModeRequest
  from slack_sdk.socket_mode.response import SocketModeResponse
  from mindsdb.interfaces.chatbot.types import ChatBotMessage
  from mindsdb.utilities import log
  from mindsdb.utilities.config import Config
  from mindsdb_sql.parser import ast
  from mindsdb_sql.parser.ast import ASTNode, Update, Delete
  from mindsdb_sql.planner.utils import query_traversal
  from mindsdb.integrations.libs.api_handler import APIChatHandler, APITable, FuncParser
  from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse, RESPONSE_TYPE
label_desc: Use image node_id 4 for calling the SlackHandler obj's underlying member method code with example usage: obj.subscribe(stop_event, callback, table_name) without return types