如何使用 BotKit 从 Slack API 获取用户列表?

Posted

技术标签:

【中文标题】如何使用 BotKit 从 Slack API 获取用户列表?【英文标题】:How to get a list of users from Slack API using BotKit? 【发布时间】:2017-07-28 01:29:12 【问题描述】:

我正在尝试创建一个向随机松弛用户发送直接消息的机器人。我尝试完成的第一步是 console.logging 用户列表。

这是我目前所拥有的:

controller.hears('marco', 'direct_message', function(bot, message) 
  bot.api.users.list(user: message.user, function(err, list)
    bot.reply(message, "polo");
    console.log(bot.api.users.list);
  )
);

当我直接向机器人 marco 发送消息时,它会回复 polo 并记录 [Function]。如何记录一些真实数据?我试过bot.api.users.list.members,但它记录为undefined。谢谢。

【问题讨论】:

【参考方案1】:

如果您想列出所有用户,您使用的是正确的 API 调用,只需从中删除参数( 而不是 user: message.user)。 Docs: users.list

如果您想从您的团队中获取有关特定用户的信息,您应该使用以下 API 调用:bot.api.users.info( user: USER_ID , function (err, response) ... ); Docs: users.info

Slack 文档中还有一个测试部分(“测试器”选项卡),以便您可以尝试 API 调用将为您的实际用户返回什么。

【讨论】:

感谢您的回答。我刚刚尝试从 API 调用中删除参数,但控制台中仍然输出的所有内容是 [Function] 那是因为您正在尝试控制台记录一个函数 (bot.api.users.list) 与您在上面两行调用的函数相同。而是尝试从回调中记录 list @TomiS 我正在尝试使用 bot.api.users.list((error, response) => console.log(response); ) 终端显示其调用但没有得到任何响应甚至 bot.api.users.info 工作正常,有什么错误吗? @DeepakPatidar 尝试使用此 API 调用:bot.api.users.list( , (error, response) => console.log(response) )

以上是关于如何使用 BotKit 从 Slack API 获取用户列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从服务器使用 Slack API 进行身份验证

如何自动从 Slack 获取访问令牌?

如何通过 slack 分享视频?

slack api : 上传到 slack 频道的文件

ruby 这个Ruby脚本将批量删除超过30天的所有Slack文件。只需从https://api.slack.com/web#authentication添加您的API令牌即可

ruby 这个Ruby脚本将批量删除超过30天的所有Slack文件。只需从https://api.slack.com/web#authentication添加您的API令牌即可