Created
January 22, 2021 11:43
-
-
Save airween/3b3d1a94bd3960468e6b7ff394714084 to your computer and use it in GitHub Desktop.
Get whole history from a Slack channel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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