我正在创建一个松弛的斜杠命令,我想知道我在其中执行命令的通道的用户名。

例如,我有一个叫@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/

10-12 16:38