slack-ruby / slack-ruby-client

A Ruby and command-line client for the Slack Web, Real Time Messaging and Event APIs.
MIT License
1.19k stars 213 forks source link

Remove files.upload in favor of files.getUploadURLExternal, etc. #514

Open gregorbg opened 2 weeks ago

gregorbg commented 2 weeks ago

The current README file (as of opening this issue) references the client.files_upload method to upload files. Under the hood, this uses the files.upload endpoint which has been deprecated by Slack: https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay

The article that I linked above describes the migration path, but it only has code samples for JS, Python and Java. What is the recommended way to use the files.getUploadURLExternal endpoint with this client?

In particular, I can see that the response of the files.getUploadURLExternal invocation contains a link which Slack expects me (the client) to make a POST request to. That means I'd have to open and maintain my own HTTP client (Faraday etc.) on top of this library's Slack client. That seems a bit overkill, is there a better way?

dblock commented 2 weeks ago

Sounds like we need to remove files_upload (maybe be coming in via #509 already) and reimplement something similar to Python's files_upload_v2. Want to give it a shot @gregorbg?