Source code for langchain_community.tools.slack.utils
"""Slack tool utils."""
from __future__ import annotations
import logging
import os
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from slack_sdk import WebClient
logger = logging.getLogger(__name__)
[docs]def login() -> WebClient:
    """Authenticate using the Slack API."""
    try:
        from slack_sdk import WebClient
    except ImportError as e:
        raise ImportError(
            "Cannot import slack_sdk. Please install the package with \
            `pip install slack_sdk`."
        ) from e
    if "SLACK_BOT_TOKEN" in os.environ:
        token = os.environ["SLACK_BOT_TOKEN"]
        client = WebClient(token=token)
        logger.info("slack login success")
        return client
    elif "SLACK_USER_TOKEN" in os.environ:
        token = os.environ["SLACK_USER_TOKEN"]
        client = WebClient(token=token)
        logger.info("slack login success")
        return client
    else:
        logger.error(
            "Error: The SLACK_BOT_TOKEN or SLACK_USER_TOKEN \
            environment variable have not been set."
        )
UTC_FORMAT = "%Y-%m-%dT%H:%M:%S%z"
"""UTC format for datetime objects."""