Slack API client providing comprehensive Python interface for messaging, file sharing, user management, and team communication features.
—
Additional Slack functionality including webhooks, dialogs, presence management, Do Not Disturb settings, reminders, team administration, bot management, and migration utilities.
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:'
})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
"""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)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
"""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
"""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
"""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
"""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
"""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
"""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.
"""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
"""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
"""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