title: How to upload file using Slack API as user?
body: <p>Right now, the token used when uploading files via <a href="https://api.slack.com/methods/files.upload" rel="nofollow noreferrer"><code>files.upload</code></a> is associated with my Slack user account. So any uploads performed using this token appears to have been made by me.</p>
  
  <p>However, I'd like to specify something like <code>as_user</code> (which is available when using <a href="https://api.slack.com/methods/chat.postMessage" rel="nofollow noreferrer"><code>chat.PostMessage</code></a>), which will make the upload appear as if it was uploaded by specified Slack user. Is this possible?</p>
  
  <p>I have this:</p>
  
  <pre><code> upload_file(filepath='/path/to/file.jpg',
               channels='#uploads',
               title='my image',
               initial_comment='pls give me some feedback!')
  </code></pre>
  
  <p>And here's the function being called:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>I did find <a href="https://stackoverflow.com/questions/37623776/can-you-upload-a-file-to-the-slack-api-using-files-upload-as-a-different-user">this existing question</a>, but I don't find the answer clear at all on what could be done to make this work.</p>