Slack:如何获取directmessage频道名称

时间:2016-04-26 23:12:32

标签: post request slack

我正在创建一个slack slash命令,我想知道我正在执行命令的通道的用户名。

例如,我有一位叫@steve的同事,我正在和史蒂夫聊天,我执行命令:

/mycommand

当我检查我的应用程序时,我发现POST请求只获得了这些值

[
    (u'user_id', u'U03NKXXXX'), 
    (u'channel_id', u'D03QBXXXX'), 
    (u'text', u''), (u'response_url', u'https://hooks.slack.com/commands/T03ARXXXX/3804397XXXX/nGUTg4zpQrMrRR07scI6XXXX'), 
    (u'team_id', u'T03ARXXXX'), 
    (u'channel_name', u'directmessage'), 
    (u'token', u'XXXXXXXXXXXXXXXXXXX'), 
    (u'command', u'/mycommand'), 
    (u'team_domain', u'myteam'), 
    (u'user_name', u'myusername')
]

我希望directmessage成为用户的名称(我的示例中为steve),那么如何获取目标渠道用户名?

1 个答案:

答案 0 :(得分:-2)

理论上,您可以从斜杠请求中获取您收到的频道ID,并使用conversations.info获取当前频道的完整信息,其中包括直接消息对话的频道所有者。

但是,由于Slack的安全架构,您的令牌需要能够访问该直接通道。如果它属于该直接消息通道的两个参与者之一,它将只能访问。

因此,除非您的应用程序拥有来自每个用户的令牌,否则您可以从Slash命令获取用户ID,该命令必须来自直接消息的两个参与者之一。

相关问题