slack-discovery-sdk


Nameslack-discovery-sdk JSON
Version 1.0.2 PyPI version JSON
download
home_page
SummaryThe Slack Discovery API SDK for Python
upload_time2023-08-15 05:14:14
maintainer
docs_urlNone
authorSlack Technologies, LLC
requires_python>=3.6
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python-Slack-Discovery-SDK

[![pypi package][pypi-image]][pypi-url]
[![Python Version][python-version]][pypi-url]

πŸ‘‹πŸΌ Welcome to the Python-Slack-Discovery-SDK! This project aims to make using the Slack Discovery APIs easier.

> 🚨 Note: This SDK is only accessible to customer developers with access to the Discovery API (Enterprise accounts) or partners who have been onboarded to the Security and Compliance partner program. To learn more about the Discovery APIs, please [visit our help center](https://slack.com/help/articles/360002079527-A-guide-to-Slacks-Discovery-APIs). 🚨

## Prerequisites For Using the SDK
* Python version 3.6 or greater
* Latest version of pip
* A token with discovery scopes (`discovery:read` and or `discovery:write`)
  > Note: Please see the [OAuth guide](https://api.slack.com/enterprise/discovery/oauth-guide) on how to get this token if you don't already have one.

## Using the SDK

Use pip to install the SDK.

```bash
pip install slack-discovery-sdk
```

Once you've installed the SDK, you can use the following import statement 
to use the methods in the SDK. 

```python
from slack_discovery_sdk import DiscoveryClient
```

> Note: use the following command to set your environmental variable to be your token with discovery scopes.

```bash
export SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN="your-discovery-token-goes-here"
```
To initialize the SDK, you must pass in a token with Discovery Scopes:

```python
import os
enterprise_token = os.environ["SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN"]
client = DiscoveryClient(token=enterprise_token)
```
> Note: Please see the [OAuth guide](https://api.slack.com/enterprise/discovery/oauth-guide) on how to get this token if you don't already have one.

Now, you can use the client to call all of the Slack Discovery SDK methods. 
Here is an example of calling the `discovery.enterprise.info` endpoint, and printing the result to the console:

```python
enterprise_info = client.discovery_enterprise_info()
print(enterprise_info.body)
```

To view the full code using the `discovery.enterprise.info` endpoint, please see the sample 
[`app.py` file](https://github.com/slackapi/python-slack-discovery-sdk/blob/main/app.py).

To view all of the methods offered by the SDK, please see the [client.py file](https://github.com/slackapi/python-slack-discovery-sdk/blob/main/slack_discovery_sdk/client.py).

# πŸ‘¨πŸ»β€πŸ’» Understanding the Setup Script πŸ‘©πŸ»β€πŸ’»

In order to speed up the development process, we've provided you with a script called 
`set_env_vars.sh` in the scripts folder to automate a few things needed to run the SDK. 
The script accomplishes the following things using the following code:
* Prints your current Python version (**you will need Python version 3.6 or greater for this SDK**) 
  ```bash
  python3 --version
  ```
* Sets your Virtual Environment
  ```bash
  python3 -m venv .venv
  source .venv/bin/activate
  ```
* Ensures pip is updated to the latest version
  ```bash
  pip install -U pip
  ```
* Installs required packages and dependencies
  ```bash
  pip install -e ".[testing]"
  ```

## πŸ‘¨πŸ»β€πŸ’» Adding Env Variables to Setup Script πŸ‘©πŸ»β€πŸ’»

🚨 At this point, you'll need to edit the `scripts/set_env_vars.sh` script in an editor of your choice 🚨

Edit the line below, and add in your token with `discovery:read` and `discovery:write` scopes.
```bash
export SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN='xoxp-**********'
```

Now, if you want to run the examples in the `slack_discovery_sdk/examples` directory, you'll need to set 
a few other additional environmental variables.  

Edit the lines below, and add in the appropriate tokens:

```bash
# A normal bot token with many scopes
export SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN = "xoxb-*******"

# A test workspace ID in the Enterprise Org
# SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN should have the access to this workspace
export SLACK_DISCOVERY_SDK_TEST_TEAM_ID='T0********'

# A test channel ID in the Enterprise Org
export SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID='C0******'

# Used for audit logs API (examples/audit_logs_pattern.py)
# A User Token with auditlogs:read scopes, 
export SLACK_DISCOVERY_SDK_TEST_USER_AUDIT_TOKEN='xoxp-*************'
```

🚨 Once you are done adding in your tokens, save the file 🚨

> Note: before you can run this script, you will need to mark the file as executable with the following command:
```bash
chmod +x scripts/set_env_vars.sh
```

## πŸ‘©πŸ»β€πŸ’» Run the Setup Script πŸ‘¨πŸ»β€πŸ’»
Use the following command to run the script:

> Note: you must use the `source` command so that the env variables are set properly.

```bash
source ./scripts/set_env_vars.sh
```

If all went well, you should see the following output:
```bash
Your current Python version is: 
Python 3.10.0
Setting your virtual env.
Success.
Setting your SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN.
Success.
Setting your SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN (this is needed if you want to run the examples).
Success.
Setting your SLACK_DISCOVERY_SDK_TEST_TEAM_ID (this is needed if you want to run the examples).
Success.
Setting your SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID (this is needed if you want to run the examples).
Success.
Setting your SLACK_DISCOVERY_SDK_TEST_USER_AUDIT_TOKEN (this is needed if you want to run the examples).
Success.
```

## Running the Examples
Use the following command to run a script which calls the `discovery.enterprise.info` endpoint. This endpoint returns basic information about the Enterprise Grid org where the app is installed, including all workspaces (teams). 

```python
python3 slack_discovery_sdk/examples/get_enterprise_info.py
```

You should see a response similar to the following (note the result below has been truncated for readability):

```python
DEBUG:slack_discovery_sdk.base_client:Rate limit metrics: DEBUG:slack_discovery_sdk.base_client:Received the following response - status: 200, headers: {'date': 'Wed, 13 Oct 2021 22:09:57 GMT',..., body: {"ok":true,"enterprise":{"id":"T027****D2R","name":"Enterprise-****-Sandbox","domain":"test-****","email_domain":"","icon":...,"image_default":true},"is_verified":false,"teams":[{"id":"****","name":"Enterprise-****-Sandbox","domain":"test-****","email_domain":"","icon":{"image_102":"https:\/\/a...avatars-teams\/ava_0021-88.png","image_default":true},"is_verified":false,"enterprise_id":"E**","is_enterprise":0,"created":1625594757,"archived":false,"deleted":false,"discoverable":"unlisted"}]}}
```

If you want to run all of the examples at once, you can use the `run_all.sh` script.

> Note: before you can run this script, you will need to mark the file as executable with the following command:

```bash
chmod +x scripts/run_all.sh
```

Then, run the script:

```bash
./scripts/run_all.sh
```

This will run all of the examples in the `slack_discovery_sdk/examples` folder, and 
you should see debug output in your terminal once the script has finished running.

Continue reading below to learn what each example does:

πŸ’³ **`DLP_call_pattern.py`** πŸ’³
* This script involves using the tombstoning capabilities of the Discovery SDK to check for messages that contain sensitive information. If sensitive information is detected by our script (for example a credit card number), the message is tombstoned, and the user is notified that their message is being reviewed.
* Once you run this script, you should see that one of your 
messages in the channel which you set in your env variable (SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID) should have been tombstoned. The message should now say `This message is being scanned to make sure it complies with your team’s data security policies.`

πŸ™‹πŸΎβ€β™€οΈ **`user_based_eDiscovery_with_edits.py`** πŸ‘©πŸ»β€πŸ«
* This script retrieves all of the conversations (channels) and messages a particular user is in. It then outputs those 
conversations to a file, and stores them in the following format: `YYYY/MM/DD/user_id/channel_id/discovery_conversations.json`. If the `has_edits` flag is true 
for a certain conversation, all edited messages will be found in the `edits` field.

πŸ‘©πŸ»β€πŸ« **`audit_logs_pattern.py`** πŸ‘©πŸ»β€πŸ«
* This script will use the [Audit Logs API](https://api.slack.com/admins/audit-logs) to find all of the
channels that a particular user has created. As is the 
case with the `user_based_eDiscovery` script, it will only
be useful if you have a paricular user which you want to see details about. This script will output the channel creation events associated with a particular user_id to in the following format: `YYYY/MM/DD/user_id/audit_logs/public_channel_created.json`.

πŸ™‹πŸΎβ€β™€οΈ **`user_based_eDiscovery_pattern.py`** πŸ‘©πŸ»β€πŸ«
* This is the same as the `user_based_eDiscovery_with_edits.py` script, except it 
doesn't capture edits. 

## Considerations
The SDK and examples are to aid in your development process. Please feel free to use this as a learning exercise, and to build on top of these examples, but the examples shown above are by no means a complete solution. 

## Running tests

To run the unit tests in this repository, creating a Discovery API enabled app is required.

```yaml
_metadata:
  major_version: 1
  minor_version: 1
display_information:
  name: discovery-api-test
features:
  bot_user:
    display_name: discovery-api-test
oauth_config:
  redirect_urls:
    - https://your-own-domain.ngrok.io/slack/oauth_redirect
  scopes:
    user:
      - discovery:read
      - discovery:write
    bot:
      - channels:manage
      - channels:read
      - chat:write
      - commands
      - groups:write
      - im:write
      - mpim:write
      - reactions:write
      - channels:join
      - files:write
settings:
  org_deploy_enabled: true
  socket_mode_enabled: false
  token_rotation_enabled: false
```

And then, setting the bot / user tokens in the env variables as below:

```bash
# Setup your virtual environment
python --version  # make sure if you're using Python 3.6+
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e ".[testing]"

# Set required env variables
# 1. An admin user token with discovery:read, discovery:write
export SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN=xoxp-xxx
# 2. A normal bot token with many scopes
export SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN=xoxb-xxxx
# 3. A test workspace ID in the Enterprise Org
#    SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN should have the access to this workspace
export SLACK_DISCOVERY_SDK_TEST_TEAM_ID=T1234567890
# 4. A test channel ID in the Enterprise Org
#    SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN should have the access to this channel
export SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID=C1234567890
pytest tests/

# You can check logs/pytest.log for trouble shooting
```

## Feedback

For feedback, please use [this feedback form](https://forms.gle/B2PRF9HQheRgQdo7A). 

## Issues and Troubleshooting
For issues, please use [this issue form](https://forms.gle/jHS17eYEYAtcXA96A).


[pypi-image]: https://badge.fury.io/py/slack-discovery-sdk.svg
[pypi-url]: https://pypi.org/project/slack-discovery-sdk/
[python-version]: https://img.shields.io/pypi/pyversions/slack-discovery-sdk.svg

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "slack-discovery-sdk",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Slack Technologies, LLC",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/c2/be/61cb8c7cd86b12f08a0cb85d092c6af1ba019853101342320ecdca4474f9/slack-discovery-sdk-1.0.2.tar.gz",
    "platform": null,
    "description": "# Python-Slack-Discovery-SDK\n\n[![pypi package][pypi-image]][pypi-url]\n[![Python Version][python-version]][pypi-url]\n\n\ud83d\udc4b\ud83c\udffc Welcome to the Python-Slack-Discovery-SDK! This project aims to make using the Slack Discovery APIs easier.\n\n> \ud83d\udea8 Note: This SDK is only accessible to customer developers with access to the Discovery API (Enterprise accounts) or partners who have been onboarded to the Security and Compliance partner program. To learn more about the Discovery APIs, please [visit our help center](https://slack.com/help/articles/360002079527-A-guide-to-Slacks-Discovery-APIs). \ud83d\udea8\n\n## Prerequisites For Using the SDK\n* Python version 3.6 or greater\n* Latest version of pip\n* A token with discovery scopes (`discovery:read` and or `discovery:write`)\n  > Note: Please see the [OAuth guide](https://api.slack.com/enterprise/discovery/oauth-guide) on how to get this token if you don't already have one.\n\n## Using the SDK\n\nUse pip to install the SDK.\n\n```bash\npip install slack-discovery-sdk\n```\n\nOnce you've installed the SDK, you can use the following import statement \nto use the methods in the SDK. \n\n```python\nfrom slack_discovery_sdk import DiscoveryClient\n```\n\n> Note: use the following command to set your environmental variable to be your token with discovery scopes.\n\n```bash\nexport SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN=\"your-discovery-token-goes-here\"\n```\nTo initialize the SDK, you must pass in a token with Discovery Scopes:\n\n```python\nimport os\nenterprise_token = os.environ[\"SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN\"]\nclient = DiscoveryClient(token=enterprise_token)\n```\n> Note: Please see the [OAuth guide](https://api.slack.com/enterprise/discovery/oauth-guide) on how to get this token if you don't already have one.\n\nNow, you can use the client to call all of the Slack Discovery SDK methods. \nHere is an example of calling the `discovery.enterprise.info` endpoint, and printing the result to the console:\n\n```python\nenterprise_info = client.discovery_enterprise_info()\nprint(enterprise_info.body)\n```\n\nTo view the full code using the `discovery.enterprise.info` endpoint, please see the sample \n[`app.py` file](https://github.com/slackapi/python-slack-discovery-sdk/blob/main/app.py).\n\nTo view all of the methods offered by the SDK, please see the [client.py file](https://github.com/slackapi/python-slack-discovery-sdk/blob/main/slack_discovery_sdk/client.py).\n\n# \ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb Understanding the Setup Script \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb\n\nIn order to speed up the development process, we've provided you with a script called \n`set_env_vars.sh` in the scripts folder to automate a few things needed to run the SDK. \nThe script accomplishes the following things using the following code:\n* Prints your current Python version (**you will need Python version 3.6 or greater for this SDK**) \n  ```bash\n  python3 --version\n  ```\n* Sets your Virtual Environment\n  ```bash\n  python3 -m venv .venv\n  source .venv/bin/activate\n  ```\n* Ensures pip is updated to the latest version\n  ```bash\n  pip install -U pip\n  ```\n* Installs required packages and dependencies\n  ```bash\n  pip install -e \".[testing]\"\n  ```\n\n## \ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb Adding Env Variables to Setup Script \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb\n\n\ud83d\udea8 At this point, you'll need to edit the `scripts/set_env_vars.sh` script in an editor of your choice \ud83d\udea8\n\nEdit the line below, and add in your token with `discovery:read` and `discovery:write` scopes.\n```bash\nexport SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN='xoxp-**********'\n```\n\nNow, if you want to run the examples in the `slack_discovery_sdk/examples` directory, you'll need to set \na few other additional environmental variables.  \n\nEdit the lines below, and add in the appropriate tokens:\n\n```bash\n# A normal bot token with many scopes\nexport SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN = \"xoxb-*******\"\n\n# A test workspace ID in the Enterprise Org\n# SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN should have the access to this workspace\nexport SLACK_DISCOVERY_SDK_TEST_TEAM_ID='T0********'\n\n# A test channel ID in the Enterprise Org\nexport SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID='C0******'\n\n# Used for audit logs API (examples/audit_logs_pattern.py)\n# A User Token with auditlogs:read scopes, \nexport SLACK_DISCOVERY_SDK_TEST_USER_AUDIT_TOKEN='xoxp-*************'\n```\n\n\ud83d\udea8 Once you are done adding in your tokens, save the file \ud83d\udea8\n\n> Note: before you can run this script, you will need to mark the file as executable with the following command:\n```bash\nchmod +x scripts/set_env_vars.sh\n```\n\n## \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb Run the Setup Script \ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb\nUse the following command to run the script:\n\n> Note: you must use the `source` command so that the env variables are set properly.\n\n```bash\nsource ./scripts/set_env_vars.sh\n```\n\nIf all went well, you should see the following output:\n```bash\nYour current Python version is: \nPython 3.10.0\nSetting your virtual env.\nSuccess.\nSetting your SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN.\nSuccess.\nSetting your SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN (this is needed if you want to run the examples).\nSuccess.\nSetting your SLACK_DISCOVERY_SDK_TEST_TEAM_ID (this is needed if you want to run the examples).\nSuccess.\nSetting your SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID (this is needed if you want to run the examples).\nSuccess.\nSetting your SLACK_DISCOVERY_SDK_TEST_USER_AUDIT_TOKEN (this is needed if you want to run the examples).\nSuccess.\n```\n\n## Running the Examples\nUse the following command to run a script which calls the `discovery.enterprise.info` endpoint. This endpoint returns basic information about the Enterprise Grid org where the app is installed, including all workspaces (teams). \n\n```python\npython3 slack_discovery_sdk/examples/get_enterprise_info.py\n```\n\nYou should see a response similar to the following (note the result below has been truncated for readability):\n\n```python\nDEBUG:slack_discovery_sdk.base_client:Rate limit metrics: DEBUG:slack_discovery_sdk.base_client:Received the following response - status: 200, headers: {'date': 'Wed, 13 Oct 2021 22:09:57 GMT',..., body: {\"ok\":true,\"enterprise\":{\"id\":\"T027****D2R\",\"name\":\"Enterprise-****-Sandbox\",\"domain\":\"test-****\",\"email_domain\":\"\",\"icon\":...,\"image_default\":true},\"is_verified\":false,\"teams\":[{\"id\":\"****\",\"name\":\"Enterprise-****-Sandbox\",\"domain\":\"test-****\",\"email_domain\":\"\",\"icon\":{\"image_102\":\"https:\\/\\/a...avatars-teams\\/ava_0021-88.png\",\"image_default\":true},\"is_verified\":false,\"enterprise_id\":\"E**\",\"is_enterprise\":0,\"created\":1625594757,\"archived\":false,\"deleted\":false,\"discoverable\":\"unlisted\"}]}}\n```\n\nIf you want to run all of the examples at once, you can use the `run_all.sh` script.\n\n> Note: before you can run this script, you will need to mark the file as executable with the following command:\n\n```bash\nchmod +x scripts/run_all.sh\n```\n\nThen, run the script:\n\n```bash\n./scripts/run_all.sh\n```\n\nThis will run all of the examples in the `slack_discovery_sdk/examples` folder, and \nyou should see debug output in your terminal once the script has finished running.\n\nContinue reading below to learn what each example does:\n\n\ud83d\udcb3 **`DLP_call_pattern.py`** \ud83d\udcb3\n* This script involves using the tombstoning capabilities of the Discovery SDK to check for messages that contain sensitive information. If sensitive information is detected by our script (for example a credit card number), the message is tombstoned, and the user is notified that their message is being reviewed.\n* Once you run this script, you should see that one of your \nmessages in the channel which you set in your env variable (SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID) should have been tombstoned. The message should now say `This message is being scanned to make sure it complies with your team\u2019s data security policies.`\n\n\ud83d\ude4b\ud83c\udffe\u200d\u2640\ufe0f **`user_based_eDiscovery_with_edits.py`** \ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb\n* This script retrieves all of the conversations (channels) and messages a particular user is in. It then outputs those \nconversations to a file, and stores them in the following format: `YYYY/MM/DD/user_id/channel_id/discovery_conversations.json`. If the `has_edits` flag is true \nfor a certain conversation, all edited messages will be found in the `edits` field.\n\n\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb **`audit_logs_pattern.py`** \ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb\n* This script will use the [Audit Logs API](https://api.slack.com/admins/audit-logs) to find all of the\nchannels that a particular user has created. As is the \ncase with the `user_based_eDiscovery` script, it will only\nbe useful if you have a paricular user which you want to see details about. This script will output the channel creation events associated with a particular user_id to in the following format: `YYYY/MM/DD/user_id/audit_logs/public_channel_created.json`.\n\n\ud83d\ude4b\ud83c\udffe\u200d\u2640\ufe0f **`user_based_eDiscovery_pattern.py`** \ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb\n* This is the same as the `user_based_eDiscovery_with_edits.py` script, except it \ndoesn't capture edits. \n\n## Considerations\nThe SDK and examples are to aid in your development process. Please feel free to use this as a learning exercise, and to build on top of these examples, but the examples shown above are by no means a complete solution. \n\n## Running tests\n\nTo run the unit tests in this repository, creating a Discovery API enabled app is required.\n\n```yaml\n_metadata:\n  major_version: 1\n  minor_version: 1\ndisplay_information:\n  name: discovery-api-test\nfeatures:\n  bot_user:\n    display_name: discovery-api-test\noauth_config:\n  redirect_urls:\n    - https://your-own-domain.ngrok.io/slack/oauth_redirect\n  scopes:\n    user:\n      - discovery:read\n      - discovery:write\n    bot:\n      - channels:manage\n      - channels:read\n      - chat:write\n      - commands\n      - groups:write\n      - im:write\n      - mpim:write\n      - reactions:write\n      - channels:join\n      - files:write\nsettings:\n  org_deploy_enabled: true\n  socket_mode_enabled: false\n  token_rotation_enabled: false\n```\n\nAnd then, setting the bot / user tokens in the env variables as below:\n\n```bash\n# Setup your virtual environment\npython --version  # make sure if you're using Python 3.6+\npython -m venv .venv\nsource .venv/bin/activate\npip install -U pip\npip install -e \".[testing]\"\n\n# Set required env variables\n# 1. An admin user token with discovery:read, discovery:write\nexport SLACK_DISCOVERY_SDK_TEST_ENTERPRISE_TOKEN=xoxp-xxx\n# 2. A normal bot token with many scopes\nexport SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN=xoxb-xxxx\n# 3. A test workspace ID in the Enterprise Org\n#    SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN should have the access to this workspace\nexport SLACK_DISCOVERY_SDK_TEST_TEAM_ID=T1234567890\n# 4. A test channel ID in the Enterprise Org\n#    SLACK_DISCOVERY_SDK_TEST_BOT_TOKEN should have the access to this channel\nexport SLACK_DISCOVERY_SDK_TEST_CHANNEL_ID=C1234567890\npytest tests/\n\n# You can check logs/pytest.log for trouble shooting\n```\n\n## Feedback\n\nFor feedback, please use [this feedback form](https://forms.gle/B2PRF9HQheRgQdo7A). \n\n## Issues and Troubleshooting\nFor issues, please use [this issue form](https://forms.gle/jHS17eYEYAtcXA96A).\n\n\n[pypi-image]: https://badge.fury.io/py/slack-discovery-sdk.svg\n[pypi-url]: https://pypi.org/project/slack-discovery-sdk/\n[python-version]: https://img.shields.io/pypi/pyversions/slack-discovery-sdk.svg\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "The Slack Discovery API SDK for Python",
    "version": "1.0.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8e426f43a6e813c7374a8f368d5dac5c3ee09e808ec7132f3c8e15d4cc55505",
                "md5": "20cc82497b69f3389377931e67de981e",
                "sha256": "6f5eba9f6a9460382739871acb2408d22cfa77bea51fa32f187f643901928ec9"
            },
            "downloads": -1,
            "filename": "slack_discovery_sdk-1.0.2-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "20cc82497b69f3389377931e67de981e",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.6",
            "size": 37069,
            "upload_time": "2023-08-15T05:14:13",
            "upload_time_iso_8601": "2023-08-15T05:14:13.408318Z",
            "url": "https://files.pythonhosted.org/packages/c8/e4/26f43a6e813c7374a8f368d5dac5c3ee09e808ec7132f3c8e15d4cc55505/slack_discovery_sdk-1.0.2-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c2be61cb8c7cd86b12f08a0cb85d092c6af1ba019853101342320ecdca4474f9",
                "md5": "d53321d575ba8b9354527b1cba43303c",
                "sha256": "45a4cbc185d282a99713b951621a2810166c16d7fc0493bdfd67484093789a77"
            },
            "downloads": -1,
            "filename": "slack-discovery-sdk-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "d53321d575ba8b9354527b1cba43303c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 38842,
            "upload_time": "2023-08-15T05:14:14",
            "upload_time_iso_8601": "2023-08-15T05:14:14.845543Z",
            "url": "https://files.pythonhosted.org/packages/c2/be/61cb8c7cd86b12f08a0cb85d092c6af1ba019853101342320ecdca4474f9/slack-discovery-sdk-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-15 05:14:14",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "slack-discovery-sdk"
}
        
Elapsed time: 0.11225s