我正在创建一个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
),那么如何获取目标渠道用户名?
答案 0 :(得分:-2)
理论上,您可以从斜杠请求中获取您收到的频道ID,并使用conversations.info
获取当前频道的完整信息,其中包括直接消息对话的频道所有者。
但是,由于Slack的安全架构,您的令牌需要能够访问该直接通道。如果它属于该直接消息通道的两个参与者之一,它将只能访问。
因此,除非您的应用程序拥有来自每个用户的令牌,否则您可以从Slash命令获取用户ID,该命令必须来自直接消息的两个参与者之一。