我正在创建一个松弛的斜杠命令,我想知道我在其中执行命令的通道的用户名。
例如,我有一个叫@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
),那么如何获取目标频道的用户名? 最佳答案
从理论上讲,您可以获取从斜杠请求中收到的频道ID,并使用conversations.info
获取当前频道的完整信息,其中包括直接消息对话的频道所有者。
但是,由于Slack的安全性体系结构,您的令牌需要访问该直接通道。并且仅当它属于该直接消息通道的两个参与者之一时,它才有权访问。
因此,除非您的应用有每个用户的令牌,否则您最好的办法是从Slash命令中获取用户ID,该ID必须来自直接消息的两个参与者之一。
关于post - 松弛:如何获取直接消息 channel 名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36877428/