Right now, the token used when uploading files via files.upload is associated with my Slack user account. So any uploads performed using this token appears to have been made by me.
However, I'd like to specify something like as_user (which is available when using chat.PostMessage), which will make the upload appear as if it was uploaded by specified Slack user. Is this possible?
I have this:
upload_file(filepath='/path/to/file.jpg',
channels='#uploads',
title='my image',
initial_comment='pls give me some feedback!')
And here's the function being called:
import os
import requests
TOKEN = your_token_here
def upload_file(
filepath,
channels,
filename=None,
content=None,
title=None,
initial_comment=None):
"""Upload file to channel
Note:
URLs can be constructed from:
https://api.slack.com/methods/files.upload/test
"""
if filename is None:
filename = os.path.basename(filepath)
data = {}
data['token'] = TOKEN
data['file'] = filepath
data['filename'] = filename
data['channels'] = channels
if content is not None:
data['content'] = content
if title is not None:
data['title'] = title
if initial_comment is not None:
data['initial_comment'] = initial_comment
filepath = data['file']
files = {
'file': (filepath, open(filepath, 'rb'), 'image/jpg', {
'Expires': '0'
})
}
data['media'] = files
response = requests.post(
url='https://slack.com/api/files.upload',
data=data,
headers={'Accept': 'application/json'},
files=files)
return response.text
I did find this existing question, but I don't find the answer clear at all on what could be done to make this work.
There is no as_user option for uploading and sharing files via API. If you want to upload files to a Slack channel as a different user via files.upload you have two options:
You can create bot users through customization or as part of a Slack app.
files.upload is deprecated, you'd have to use the newer APIs for this, and unfortunately there doesn't seem to be a way to direct upload a file as a DM from a Slack app / bot: https://stackoverflow.com/a/79231570/27551361
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With