CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-slacker

Slack API client providing comprehensive Python interface for messaging, file sharing, user management, and team communication features.

Pending
Overview
Eval results
Files

advanced.mddocs/

Advanced Features

Additional Slack functionality including webhooks, dialogs, presence management, Do Not Disturb settings, reminders, team administration, bot management, and migration utilities.

Capabilities

Incoming Webhooks

Send messages using incoming webhooks for simpler integration without full API access.

def post(self, data):
    """
    Post message via incoming webhook.
    
    Args:
        data (dict): Webhook payload with message content and formatting
    
    Returns:
        requests.Response: HTTP response from webhook post
    """

Usage:

from slacker import IncomingWebhook

webhook = IncomingWebhook(url='https://hooks.slack.com/services/...')
webhook.post({
    'text': 'Hello from webhook!',
    'username': 'Bot Name',
    'icon_emoji': ':robot_face:'
})

Interactive Dialogs

Create and manage interactive dialogs for complex user interactions.

def open(self, dialog, trigger_id):
    """
    Open an interactive dialog.
    
    Args:
        dialog (dict): Dialog definition with elements and metadata
        trigger_id (str): Trigger ID from interactive component
    
    Returns:
        Response: Dialog open confirmation
    """

Presence Management

Advanced presence status management for users.

def set(self, presence):
    """
    Set user presence status.
    
    Args:
        presence (str): Presence status ('auto' or 'away')
    
    Returns:
        Response: Presence update confirmation
    """

Constants:

AWAY = 'away'
ACTIVE = 'active'
TYPES = (AWAY, ACTIVE)

Do Not Disturb

Manage Do Not Disturb settings and snooze periods.

def team_info(self, users=None):
    """
    Get DND info for team members.
    
    Args:
        users (list of str, optional): User IDs to query
    
    Returns:
        Response: DND status for specified users
    """

def set_snooze(self, num_minutes):
    """
    Set DND snooze period.
    
    Args:
        num_minutes (int): Minutes to snooze notifications
    
    Returns:
        Response: Snooze confirmation
    """

def info(self, user=None):
    """
    Get DND info for user.
    
    Args:
        user (str, optional): User ID (current user if None)
    
    Returns:
        Response: User's DND status and schedule
    """

def end_dnd(self):
    """
    End DND period.
    
    Returns:
        Response: End DND confirmation
    """

def end_snooze(self):
    """
    End DND snooze period.
    
    Returns:
        Response: End snooze confirmation
    """

Reminders

Create and manage personal reminders within Slack.

def add(self, text, time, user=None):
    """
    Add a reminder.
    
    Args:
        text (str): Reminder text
        time (str or int): When to remind (timestamp or relative time)
        user (str, optional): User to remind (current user if None)
    
    Returns:
        Response: Created reminder information
    """

def complete(self, reminder):
    """
    Mark reminder as complete.
    
    Args:
        reminder (str): Reminder ID
    
    Returns:
        Response: Completion confirmation
    """

def delete(self, reminder):
    """
    Delete a reminder.
    
    Args:
        reminder (str): Reminder ID
    
    Returns:
        Response: Deletion confirmation
    """

def info(self, reminder):
    """
    Get reminder details.
    
    Args:
        reminder (str): Reminder ID
    
    Returns:
        Response: Reminder information
    """

def list(self):
    """
    List user's reminders.
    
    Returns:
        Response: List of user's reminders
    """

Team Administration

Advanced team management and logging functionality.

def info(self):
    """
    Get team information.
    
    Returns:
        Response: Team details and settings
    """

def access_logs(self, count=None, page=None, before=None):
    """
    Get team access logs.
    
    Args:
        count (int, optional): Number of entries per page
        page (int, optional): Page number
        before (str, optional): Latest timestamp to include
    
    Returns:
        Response: Access log entries
    """

def integration_logs(self, service_id=None, app_id=None, user=None, change_type=None, count=None, page=None):
    """
    Get team integration logs.
    
    Args:
        service_id (str, optional): Filter by service ID
        app_id (str, optional): Filter by app ID
        user (str, optional): Filter by user
        change_type (str, optional): Filter by change type
        count (int, optional): Number of entries per page
        page (int, optional): Page number
    
    Returns:
        Response: Integration log entries
    """

def billable_info(self, user=None):
    """
    Get billable user information.
    
    Args:
        user (str, optional): User ID to query
    
    Returns:
        Response: Billing information for users
    """

Bot Management

Information about bots in the workspace.

def info(self, bot=None):
    """
    Get bot information.
    
    Args:
        bot (str, optional): Bot ID
    
    Returns:
        Response: Bot details and configuration
    """

Migration Utilities

User ID migration utilities for workspace changes.

def exchange(self, users, to_old=False):
    """
    Exchange user IDs during migration.
    
    Args:
        users (list of str): User IDs to exchange
        to_old (bool): Convert to old format (default: False)
    
    Returns:
        Response: Mapped user IDs
    """

Identity Provider Groups

Manage external identity provider groups.

def list(self, include_users=False):
    """
    List identity provider groups.
    
    Args:
        include_users (bool): Include user lists (default: False)
    
    Returns:
        Response: IDP groups with metadata
    """

App Management

Manage Slack app installations and permissions.

def uninstall(self, client_id, client_secret):
    """
    Uninstall a Slack app.
    
    Args:
        client_id (str): App client ID
        client_secret (str): App client secret
    
    Returns:
        Response: Uninstall confirmation
    """

def info(self):
    """
    Get app permissions info.
    
    Returns:
        Response: Current app permissions and scopes
    """

def request(self, scopes, trigger_id):
    """
    Request additional app permissions.
    
    Args:
        scopes (list of str): Requested permission scopes
        trigger_id (str): Trigger ID from user interaction
    
    Returns:
        Response: Permission request confirmation
        
    Note:
        WARNING: The source code implementation has a bug in lines 1147-1148 
        where parameter variables are used as dictionary keys instead of 
        string literals, which may cause runtime errors.
    """

Direct Messages

Manage direct message conversations.

def list(self):
    """
    List direct message conversations.
    
    Returns:
        Response: IM channel list
    """

def history(self, channel, latest=None, oldest=None, count=None, inclusive=None, unreads=False):
    """
    Get DM conversation history.
    
    Args:
        channel (str): IM channel ID
        latest (str, optional): Latest message timestamp
        oldest (str, optional): Oldest message timestamp
        count (int, optional): Number of messages
        inclusive (bool, optional): Include boundary messages
        unreads (bool): Include unread info (default: False)
    
    Returns:
        Response: IM message history
    """

def open(self, user):
    """
    Open direct message conversation.
    
    Args:
        user (str): User ID to open DM with
    
    Returns:
        Response: IM channel information
    """

def close(self, channel):
    """
    Close direct message conversation.
    
    Args:
        channel (str): IM channel ID
    
    Returns:
        Response: Close confirmation
    """

def replies(self, channel, thread_ts):
    """
    Retrieve replies to a threaded message in direct message.
    
    Args:
        channel (str): IM channel ID
        thread_ts (str): Thread parent message timestamp
    
    Returns:
        Response: Thread replies with message details
    """

def mark(self, channel, ts):
    """
    Mark direct message conversation as read up to a certain point.
    
    Args:
        channel (str): IM channel ID
        ts (str): Timestamp to mark as read
    
    Returns:
        Response: Mark confirmation
    """

Multi-Party Direct Messages

Manage group direct message conversations.

def open(self, users):
    """
    Open multi-party direct message.
    
    Args:
        users (list of str): User IDs for group DM
    
    Returns:
        Response: MPIM channel information
    """

def close(self, channel):
    """
    Close multi-party direct message.
    
    Args:
        channel (str): MPIM channel ID
    
    Returns:
        Response: Close confirmation
    """

def list(self):
    """
    List multi-party direct messages.
    
    Returns:
        Response: MPIM channel list
    """

def history(self, channel, latest=None, oldest=None, inclusive=False, count=None, unreads=False):
    """
    Get MPIM conversation history.
    
    Args:
        channel (str): MPIM channel ID
        latest (str, optional): Latest message timestamp
        oldest (str, optional): Oldest message timestamp
        inclusive (bool): Include boundary messages (default: False)
        count (int, optional): Number of messages
        unreads (bool): Include unread info (default: False)
    
    Returns:
        Response: MPIM message history
    """

def mark(self, channel, ts):
    """
    Mark multi-party direct message as read up to a certain point.
    
    Args:
        channel (str): MPIM channel ID
        ts (str): Timestamp to mark as read
    
    Returns:
        Response: Mark confirmation
    """

def replies(self, channel, thread_ts):
    """
    Retrieve replies to a threaded message in multi-party direct message.
    
    Args:
        channel (str): MPIM channel ID
        thread_ts (str): Thread parent message timestamp
    
    Returns:
        Response: Thread replies with message details
    """

Types

class IncomingWebhook:
    """Incoming webhook message posting."""
    def __init__(self, url=None, timeout=DEFAULT_TIMEOUT, proxies=None): ...
    def post(self, data): ...

class Dialog(BaseAPI):
    """Interactive dialog management."""
    def open(self, dialog, trigger_id): ...

class Presence(BaseAPI):
    """User presence management."""
    AWAY = 'away'
    ACTIVE = 'active'
    TYPES = (AWAY, ACTIVE)
    def set(self, presence): ...

class DND(BaseAPI):
    """Do Not Disturb management."""
    def team_info(self, users=None): ...
    def set_snooze(self, num_minutes): ...
    def info(self, user=None): ...
    def end_dnd(self): ...
    def end_snooze(self): ...

class Reminders(BaseAPI):
    """Reminder management."""
    def add(self, text, time, user=None): ...
    def complete(self, reminder): ...
    def delete(self, reminder): ...
    def info(self, reminder): ...
    def list(self): ...

class Team(BaseAPI):
    """Team information and administration."""
    def info(self): ...
    def access_logs(self, count=None, page=None, before=None): ...
    def integration_logs(self, service_id=None, app_id=None, user=None, change_type=None, count=None, page=None): ...
    def billable_info(self, user=None): ...
    
    @property
    def profile(self): ...  # Returns TeamProfile instance

class TeamProfile(BaseAPI):
    """Team profile management."""
    def get(self, visibility=None): ...

class Bots(BaseAPI):
    """Bot information."""
    def info(self, bot=None): ...

class Migration(BaseAPI):
    """User ID migration utilities."""
    def exchange(self, users, to_old=False): ...

class IDPGroups(BaseAPI):
    """Identity provider group management."""
    def list(self, include_users=False): ...

class Apps(BaseAPI):
    """Slack app management."""
    def uninstall(self, client_id, client_secret): ...
    
    @property
    def permissions(self): ...  # Returns AppsPermissions instance

class AppsPermissions(BaseAPI):
    """App permission management."""
    def info(self): ...
    def request(self, scopes, trigger_id): ...

class IM(BaseAPI):
    """Direct message management."""
    def list(self): ...
    def history(self, channel, latest=None, oldest=None, count=None, inclusive=None, unreads=False): ...
    def replies(self, channel, thread_ts): ...
    def mark(self, channel, ts): ...
    def open(self, user): ...
    def close(self, channel): ...

class MPIM(BaseAPI):
    """Multi-party direct message management."""
    def open(self, users): ...
    def close(self, channel): ...
    def mark(self, channel, ts): ...
    def list(self): ...
    def history(self, channel, latest=None, oldest=None, inclusive=False, count=None, unreads=False): ...
    def replies(self, channel, thread_ts): ...

class API(BaseAPI):
    """General API testing."""
    def test(self, error=None, **kwargs): ...

Install with Tessl CLI

npx tessl i tessl/pypi-slacker

docs

advanced.md

auth.md

channels.md

chat.md

files.md

index.md

interactive.md

rtm.md

search.md

users.md

tile.json