如何使用密码向Hubo​​t发送私人消息后向用户添加角色

时间:2018-02-02 12:15:51

标签: hubot rocket.chat

我想为用户添加新角色,以便能够为Hubot提供正确的密码。

这是我现在的脚本:

module.exports = (robot) ->
  robot.respond /PasswOrd (.*)/, (res) ->
    paSS = res.match[1]
    if paSS is "1234"
      role = 'h1'
      user = robot.brain.userForName(res.message.user.name)
      #CODE TO ADD ROLE h1 FOR THIS USER ???
      res.reply "Correct." + user.id
    else
      res.reply "Incorrect password."

使用@bot PasswOrd 1234

正确启动

但我不知道如何添加角色 感谢。

1 个答案:

答案 0 :(得分:0)

没有别的办法,我能够使用REST API“解决”这个问题。这是个坏主意吗?

我已经简化了我的实际代码来回答原始问题。

user = robot.brain.userForName(res.message.user.name)
robot.http("https://xxx.xxx.xxx/api/v1/users.info?userId=" + user['id'])
    .headers("X-Auth-Token":"xxxxxxxxxxxxxxx", "X-User-Id":"xxxxxxx")
    .get() (err, response, body) ->
        Info = JSON.parse(body)
        Info.user.roles.push("newRole")
        robot.http("https://xxx.xxx.xxx/api/v1/users.update")
            .headers("X-Auth-Token":"xxxxxxxxxxxxxxx", "X-User-Id":"xxxxxxx", "Content-type":"application/json")
            .post('{"userId": "' + user['id'] + '", "data": { "roles": ' + JSON.stringify(Info.user.roles) + ' }}')