Skip to content

Instantly share code, notes, and snippets.

@airween
Created January 22, 2021 11:43
Show Gist options
  • Save airween/3b3d1a94bd3960468e6b7ff394714084 to your computer and use it in GitHub Desktop.
Save airween/3b3d1a94bd3960468e6b7ff394714084 to your computer and use it in GitHub Desktop.
Get whole history from a Slack channel
#!/usr/bin/python3
import requests
import json
def send_request(req):
return requests.post(req['url'], data = req['data'])
URL = {
'scheme': "https",
'host': "YOUR.slack.com",
'resource': "/api/conversations.history"
}
DATA = {
'token': "YOUR-SECRET-API-KEY",
'channel': "CHANNELID"
}
# how to create api key
# https://github.com/zach-snell/slack-export/issues/33#issuecomment-647113733
req = {
'url': "%s://%s%s" % (URL['scheme'], URL['host'], URL['resource']),
'data': DATA,
}
outcnt = 0
while True:
resp = send_request(req).json()
outcnt += 1
with open("out_%03d.json" % (outcnt), "w") as fp:
print("Writing data to out_%03d.json with number of %d items..." % (outcnt, len(resp['messages'])))
fp.write(json.dumps(resp, indent=4, sort_keys=True))
fp.close()
if 'response_metadata' in resp and 'next_cursor' in resp['response_metadata']:
req['data']['cursor'] = resp['response_metadata']['next_cursor']
else:
print("No more next_cursor, exitting")
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment