slackapi / slackapi/python-slack-sdk

Download file using WebClient

Open
#1,434 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

discussion enhancement Version: 3x web-client
Dominant language
Python
Stars
4k
Forks
857
Avg merge
22h 21m
Merged PRs (30d)
16

Description

Right now, the only way to download a file from Slack is to do something like this:

import requests
response = requests.get(url_private, headers={"Authorization": f"Bearer {TOKEN}"}, timeout=30)

However, this does not respects the parameters passed to WebClient. We should be able to do something like:

client = WebClient()
response = client.get(url_private)

Or something along those lines.

Category (place an x in each of the [ ])
  • slack_sdk.web.WebClient (sync/async) (Web API client)
  • slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
  • slack_sdk.models (UI component builders)
  • slack_sdk.oauth (OAuth Flow Utilities)
  • slack_sdk.socket_mode (Socket Mode client)
  • slack_sdk.audit_logs (Audit Logs API client)
  • slack_sdk.scim (SCIM API client)
  • slack_sdk.rtm (RTM client)
  • slack_sdk.signature (Request Signature Verifier)
Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the slack_sdk.web.WebClient sync and async implementations and tracing how they apply client parameters to requests. Check the existing Web API client tests if present, then define completion as allowing file downloads through WebClient while preserving its configured parameters and supporting both client variants.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.