我正在开发一个Slack机器人(使用Hubot)以及一个Rails应用,该应用将从其接收HTTP请求并进行相应的处理。基本上,我要执行的高级步骤如下:
我似乎遇到了某种路由问题,因为当我尝试在两个应用程序都已启动的情况下执行此流程时,我遇到了EHOSTUNREACH
错误(对于Rails,rails s
和对于Hubot,./bin/hubot --adapter slack
) )。我猜想Hubot根本无法访问Rails应用程序。
我在这里想念什么吗?我需要使用什么URL来使这些应用程序相互发送请求?
我也尝试过将127.0.0.1:3000
与localhost:3000
换出,但结果保持不变。
机器人代码
module.exports = (robot) ->
robot.respond /bye/i, (res) ->
res.reply('Later alligator')
robot.logger.info 'Will proceed to clock out user'
data = JSON.stringify({
slack_user_id: res.message.user.id
})
robot.http("127.0.0.1:3000/")
.header('Content-Type', 'application/json')
.post(data) (err, resp, body) ->
if err
robot.logger.info "Encountered an error: #{err}"
else
robot.logger.info 'Successfully sent HTTP request to Rails app'
将触发字发送给漫游器时记录结果
INFO Will proceed to clock out user
INFO Encountered an error: Error: connect EHOSTUNREACH 0.0.11.184:80 - Local (192.168.91.168:60029)
启动服务器日志(肯定是端口3000)
* Listening on tcp://localhost:3000
答案 0 :(得分:0)
将请求更改为robot.http("http://localhost:3000")
,以确保您具有开始的协议。