Skip to main content

Tool 4 partial Slack API handling

Project description

Library: nftl-slack-tools

This is a tool for Slack API handling.

Source documentation of api is available here

PyPI project page

Installation

pip install nftl-slack-tools

Usage

    from nftl_slack_tools.client import SlackClient

    slack = SlackClient(slack_token='xoxp-...')
    channel = slack.get_channels_api().create('new_order')

    if channel:
        print('Yupi!')

Interface

Channels

Slack API wrapper that is handling channels category

API reference

Usage

    from nftl_slack_tools.client import SlackClient

    slack = SlackClient(slack_token='xoxp-...')
    channels_api = slack.get_channels_api()

Available methods

list()

Lists all channels in a Slack team. Channels depends on token so if you want to list users use user token instead of SlackApi admin token

Slack API : channels.list

Args:
    limit: optional page length ( default: 1000 )
    cursor: optional message list cursor for pagination
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or channels :py:class:`typing.Dict`
    with two keys: channels (list of channels) and cursor for pagination
    when success

create()

Create new channel with desired name

Slack API : channels.create

Args:
    channel: channel name, can only contain lowercase letters, numbers,
        hyphens, and underscores, and must be 21 characters or less
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or channel info as :py:class:`typing.Dict`
    when success

onboard()

Invite users to all the channels available in token scope except general

Slack API : Not available

Args:
    users_ids: :py:class:`typing.List` of slack user ids
    cursor: pagination cursor for retry etc.
    invite_token: optional auth token that will overwrite SlackApi token
        used for channel invitation
Returns:
    boolean success status

invite()

Invite user to the channel

Slack API : channels.invite

Args:
    channel: Slack channel id like CXJSD234G
    user: Slack user id like UXS65F48
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or channel info as :py:class:`typing.Dict`
    when success

info()

Get channel info by channel id

Slack API : channels.info

Args:
    channel_id: Slack channel id
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if channel_id not found or channel info
    as :py:class:`typing.Dict` when success

channel_info()

Find channel info by channel name

Slack API : Not available

Args:
    channel_name: Slack channel name
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if channel_name is not found or channel info
    as :py:class:`typing.Dict` when success

history()

Fetches history of messages and events from a channel.

Slack API : channels.history

Args:
    channel: Slack channel id like CXJSF234X
    count: number of messages per page
    latest: End of time range
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if error occurred or number of removed messages

clear_history()

Channel history cleaner Reads history and removes messages one by one

Slack API : Not available

Args:
    channel_name: Slack channel name
    chat: Chat api handler
Returns:
    Number of removed messages

Groups

Slack API wrapper that is handling groups category

API reference

Usage

    from nftl_slack_tools.client import SlackClient

    slack = SlackClient(slack_token='xoxp-...')
    channels_api = slack.get_groups_api()

Available methods

list()

Lists all groups aka private channel in a Slack team. Groups depends on token so if you want to list users use user token instead of SlackApi admin token

Slack API : groups.list

Args:
    limit: optional page length ( default: 1000 )
    cursor: optional message list cursor for pagination
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or channels :py:class:`typing.Dict`
    with two keys: groups (list of groups) and cursor for pagination
    when success

create()

Create new group with desired name

Slack API : groups.create

Args:
    group: group name, can only contain lowercase letters, numbers,
        hyphens, and underscores, and must be 21 characters or less
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or group info as :py:class:`typing.Dict`
    when success

onboard()

Invite users to all the groups available in token scope except general

Slack API : Not available

Args:
    users_ids: :py:class:`typing.List` of slack user ids
    cursor: pagination cursor for retry etc.
    invite_token: optional auth token that will overwrite SlackApi token
        used for group invitation
Returns:
    boolean success status

invite()

Invite user to the group

Slack API : groups.invite

Args:
    group: Slack group id like GXJSD234G
    user: Slack user id like UXS65F48
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or group info as :py:class:`typing.Dict`
    when success

info()

Get group info by group id

Slack API : groups.info

Args:
    group_id: Slack group id
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if group_id not found or group info
    as :py:class:`typing.Dict` when success

group_info()

Find group info by group name

Slack API : Not available

Args:
    group_name: Slack channel name
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if group_name is not found or channel info
    as :py:class:`typing.Dict` when success

history()

Fetches history of messages and events from a group.

Slack API : groups.history

Args:
    group: Slack group id like GXJSD234G
    count: number of messages per page
    latest: End of time range
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if error occurred or number of removed messages

clear_history()

Group history cleaner Reads history and removes messages one by one

Slack API : Not available

Args:
    group_name: Slack group name
    chat: chat api handler
Returns:
    Number of removed messages

Users

Slack API wrapper that is handling users category

API reference

Usage

    from nftl_slack_tools.client import SlackClient

    slack = SlackClient(slack_token='xoxp-...')
    users_api = slack.get_users_api()

Available methods

info()

Gets information about the user

Slack API : users.info

Args:
    user: Slack user id like UXS65F48
    locale: should response contain locale info
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or user info as :py:class:`typing.Dict`
    when success

validate_name()

Validate users name field

Slack API : This method is not documented

Args:
    name: name to be validated
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or boolean validity result

invite()

Invite user to the workspace

Slack API : This method is not documented

Args:
    email: account email,
    firstname: account first name
    lastname: account last name
    channels: comma separated list of channels (id's) to be invited,
    restricted: restrict to guest that can use multiple channels
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or boolean validity result

Chat

Slack API wrapper that is handling chat category

API reference

Usage

    from nftl_slack_tools.client import SlackClient

    slack = SlackClient(slack_token='xoxp-...')
    chat_api = slack.get_chat_api()

Available methods

delete()

Deletes a message

Slack API : chat.delete

Args:
    channel: Slack channel id like CXJSD234G
    ts: Message id
    token: optional auth token that will overwrite SlackApi token
Returns:
    boolean operation status

Signup

Slack API wrapper that is handling signup category

This category is not documented in Slack doc

Usage

    from nftl_slack_tools.client import SlackClient

    slack = SlackClient(slack_token='xoxp-...')
    chat_api = slack.get_signup_api()

Available methods

create_user()

Create a user with invitation code

This method is not documented in Slack doc

Args:
    code: invitation code
    username: user name that wil be used fo real and display name
    passwd: user password to be set
    locale: locale for user
    tos: TOS key to be accepted
    token: optional auth token that will overwrite SlackApi token
Returns:
    None if data is invalid or user info as :py:class:`typing.Dict`
    when success

Deployment how to

Available here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nftl_slack_tools-0.3.0.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nftl_slack_tools-0.3.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file nftl_slack_tools-0.3.0.tar.gz.

File metadata

  • Download URL: nftl_slack_tools-0.3.0.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.4

File hashes

Hashes for nftl_slack_tools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6879846c979c0680f543edcc47ee42882f5a725eed28174a8502cc288c6a8668
MD5 20ebfc6e62b9099af162f219c0842a5c
BLAKE2b-256 56151c01412e798e95b9491af6255de149a19f3868e6c90a7024e9d4069820da

See more details on using hashes here.

File details

Details for the file nftl_slack_tools-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: nftl_slack_tools-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.4

File hashes

Hashes for nftl_slack_tools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3c70c8c221e4adb05131887d6e545370ba04d0d8e8c0303df6d345d348d82016
MD5 5effb30e0c9997e33fe3574871f0b0e2
BLAKE2b-256 5b188e42e24f1261ee4499f6d6b3ea9f6faf7603d3cfe96f4ef9e850220f593e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page