I need to get all the details from a slack channel and dump it in a simple text file. I am able to get the information using :
payload = {'token': 'XXXXXX', 'channel': 'XXXXXX' , 'count': '10'}
r = requests.get('https://slack.com/api/channels.history', params=payload)
pprint(r.json())
k = r.json()for msg in k['messages']:
print msg['text'] # this extracts the text field from json
This gets me the response in json which looks like:
{u'has_more': False,
u'is_limited': True,
u'messages': [{u'text': u'This is not a test!',
u'ts': u'1459763505.000003',
u'type': u'message',
u'user': u'U03FE3Z7D'},
{u'subtype': u'bot_message',
u'text': u'This is a test!',
u'ts': u'1459750060.000002',
u'type': u'message',
u'username': u'facsimile_test'}],
u'ok': True}
This is not a test!
This is a test!
This is good stuff for me.. but not worth until i get to know the username also. I am intersted in passing the userid to slack web API and getting the name and after that dumping the whole messages in a text file as
-- username1
- messages
-- username2
- message
Slack provides an API endpoint to get a users info using the user id:
payload = {'token': 'XXXXXX', 'user': 'XXXXXX'}
r = requests.get('https://slack.com/api/users.info', params=payload)
And, from here you can get the name
field from the response which is the username
in-fact.
If you don't want to get this information for individual users, you could get the users.list
as well. And then create a mapping between the userid
and username
so you could access it wheneven you want to.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With