【问题标题】:How to read a slack user ID from response and get the username ,如何从响应中读取松弛用户 ID 并获取用户名,
【发布时间】:2016-04-08 04:53:10
【问题描述】:

我需要从一个松弛通道中获取所有详细信息并将其转储到一个简单的文本文件中。我可以使用以下方式获取信息:

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

这让我得到了 json 格式的响应,如下所示:

{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!

这对我来说是个好东西.. 但在我也知道用户名之前不值得。我有兴趣将用户 ID 传递给 slack Web API 并获取名称,然后将整个消息转储为文本文件中的

-- username1
      - messages
-- username2
      - message

【问题讨论】:

  • 您是否遇到任何错误?目前还不是很清楚你想要达到什么目的。
  • 我实际上不确定如何从 userid 获取用户名,所以我没有代码

标签: python httprequest slack-api


【解决方案1】:

Slack 提供了一个API endpoint 来使用用户 ID 获取用户信息:

payload = {'token': 'XXXXXX', 'user': 'XXXXXX'}
r = requests.get('https://slack.com/api/users.info', params=payload)

而且,从这里您可以从响应中获取name 字段,实际上是username

如果您不想为单个用户获取此信息,您也可以获取users.list。然后在useridusername 之间创建一个映射,以便您可以随时访问它。

【讨论】:

  • 如何映射 useridusername 我基本上很困惑我在哪里获取用户 ID,我从中读取用户 ID 并向 slack 发送用户名请求,然后打印用户名和相应的用户信息
【解决方案2】:

你得到的是一个 python 字典,而不是 json。

尝试使用requests 发送带有用户身份验证信息的请求。

resp = requests.get("http://yourslackapiendpoint", auth=("user", "password"))
data = resp.json()
# unmarshal JSON to a dict
d = json.loads(data)

# loop the dictionary and write to a file

如果 Slack API 需要不同的身份验证(很可能),请参阅如何在 requests doc 上传递参数。

【讨论】:

    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 2021-05-07
    • 2014-12-18
    • 2017-03-20
    • 1970-01-01
    • 2019-05-03
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多