I need a slack bot that\'s able to receive and save files send from slack chatrooms.
The problem is: slack doesn\'t send file contents, but an array of links pointing to
Tested with Python3 - just replace SLACK_TOKEN with your token. Downloads and creates an output file.
#!/usr/bin/env python3
# Usage: python3 download_files_from_slack.py
import sys
import re
import requests
url = " ".join(sys.argv[1:])
token = 'SLACK_TOKEN'
resp = requests.get(url, headers={'Authorization': 'Bearer %s' % token})
headers = resp.headers['content-disposition']
fname = re.findall("filename=(.*?);", headers)[0].strip("'").strip('"')
assert not os.path.exists(fname), print("File already exists. Please remove/rename and re-run")
out_file = open(fname, mode="wb+")
out_file.write(resp.content)
out_file.close()