我刚刚安装了hubot,我正在尝试一些基本的测试。
我在/ scripts中有这个基本脚本:
module.exports = (robot) ->
robot.respond /myscript status/i, (msg) ->
if robot.auth.hasRole(msg.envelope.user, 'test')
msg.reply "Success"
else
msg.reply "Sorry. Need 'test' role."
我发出适当的Slack命令:
schroeder has test role
“好的,施罗德有'测试'的角色。”
myscript status
“抱歉。需要'测试'角色。”
我有:
if
vs unless
)redis-cli
连接并检查密钥)。重新阅读所有文档并查找错误报告后,我仍然看不到我错过的内容。它必须是简单的东西,但我没有想法。几乎就好像脚本无法查看存储的角色(hubot-auth可以,但我的脚本不能)。
答案 0 :(得分:0)
即使在开始时,hubot也表示它正在连接到本地Redis服务器:
INFO hubot-redis-brain: Using default redis on localhost:6379
不是......至少不是你期望的方式。
如果redis实际上在运行,你应该得到一条额外的消息:
INFO hubot-redis-brain: Data for hubot brain retrieved from Redis
该消息未显示且没有Redis未运行的警告或错误。
如果你没有正确设置hubot-redis-brain,你会得到奇怪的错误和不一致,比如hubot-auth
角色检查功能失败。
另外,我发现即使我正确设置了Redis,我的测试脚本也无效。即使我找到的所有教程都测试了msg.envelope.user
,但这对我来说并不适用。我需要使用msg.message.user.name
并解决大脑课程问题:
module.exports = (robot) ->
robot.respond /fbctf status/i, (msg) ->
user = robot.brain.userForName(msg.message.user.name)
if robot.auth.hasRole(user, 'test')
msg.reply "Success"
else
msg.reply "Sorry. Need 'test' role."