现在,通过files.upload
上传文件时使用的令牌与我的Slack用户帐户相关联。因此,使用此令牌执行的任何上传似乎都是由我制作的。
但是,我想指定类似as_user
(使用chat.PostMessage
时可用)的内容,这会使上传看起来好像是由指定的Slack用户上传的。这可能吗?
我有这个:
upload_file(filepath='/path/to/file.jpg',
channels='#uploads',
title='my image',
initial_comment='pls give me some feedback!')
这是被调用的函数:
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
我确实找到了this existing question,但我没有找到明确的答案,说明如何做到这一点。
答案 0 :(得分:2)
通过API上传和共享文件没有as_user
选项。如果您想通过files.upload
以不同的用户身份将文件上传到Slack频道,您有两种选择:
您可以通过自定义或作为Slack应用程序的一部分创建bot用户。