flowdock / hubot-flowdock Goto Github PK
View Code? Open in Web Editor NEWFlowdock adapter for Hubot chat bot
Flowdock adapter for Hubot chat bot
When send
is given multiple strings, it should send them in order. Now whichever api request is fastest wins. See hubotio/hubot#691.
Hi,
I can see from browsing commits that support's been added for robot.messageRoom
, but I can't seem to get it to work. Is there something special that needs to be done?
I've tried robot.messageRoom 'main', 'hello world'
and robot.messageRoom '<very long flow ID>', 'hello world'
, but neither of these have worked.
Thanks
Other adapters seem to assign flow name to message.author.room
so that should be supported.
Our Hubot occasionally crashes with this error. I have not figured out what the circumstances are that cause it.
ERROR TypeError: Object #<Stream> has no method 'off'
at Flowdock.reconnect (/webserver/kourou/koubot/node_modules/hubot-flowdock/src/flowdock.coffee:80:5, <js>:124:19)
at Stream.<anonymous> (/webserver/kourou/koubot/node_modules/hubot-flowdock/src/flowdock.coffee:95:9, <js>:164:17)
at Stream.emit (events.js:95:17)
at JSONStream.<anonymous> (/webserver/kourou/koubot/node_modules/hubot-flowdock/node_modules/flowdock/lib/stream.js:67:28)
at JSONStream.emit (events.js:95:17)
at JSONStream.write (/webserver/kourou/koubot/node_modules/hubot-flowdock/node_modules/flowdock/lib/json_stream.js:30:14)
at Request.ondata (stream.js:51:26)
at Request.emit (events.js:95:17)
at IncomingMessage.<anonymous> (/webserver/kourou/koubot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:619:14)
at IncomingMessage.emit (events.js:95:17)
at IncomingMessage.<anonymous> (_stream_readable.js:748:14)
at IncomingMessage.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:410:10)
at emitReadable (_stream_readable.js:406:5)
at readableAddChunk (_stream_readable.js:168:9)
at IncomingMessage.Readable.push (_stream_readable.js:130:10)
at HTTPParser.parserOnBody [as onBody] (http.js:142:22)
at CleartextStream.socketOnData [as ondata] (http.js:1583:20)
at CleartextStream.read [as _read] (tls.js:511:12)
at CleartextStream.Readable.read (_stream_readable.js:323:10)
at EncryptedStream.write [as _write] (tls.js:366:25)
at doWrite (_stream_writable.js:226:10)
at writeOrBuffer (_stream_writable.js:216:5)
at EncryptedStream.Writable.write (_stream_writable.js:183:11)
at write (_stream_readable.js:585:24)
at flow (_stream_readable.js:594:7)
at Socket.pipeOnReadable (_stream_readable.js:626:5)
at Socket.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:410:10)
at emitReadable (_stream_readable.js:406:5)
at readableAddChunk (_stream_readable.js:168:9)
at Socket.Readable.push (_stream_readable.js:130:10)
at TCP.onread (net.js:528:21)
return if @robot.name == author.name
robot is never set in the class. I suspect at minimum it needs a constructor (that's how I fixed it for now).
We would prefer to have our Hubot use comments when responding to commands to have the bot's responses be a part of the conversation archive.
I have a PR ready for this, but it depends on flowdock/node-flowdock#5 or node-flowdock being refactored (as mentioned in the comments of that PR)...
We have several different flows and while hubot has joined multiple flows, he only listens to one. Is there a way for hubot to listen to multiple flows?
Sending messages to rooms does not work for me anymore.
robot.messageRoom "company/roomName", "message body"
throws an error:
TypeError: Cannot read property 'metadata' of undefined
at Flowdock.send (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot-flowdock/src/flowdock.coffee:13:5,
<js>:31:55)
at Robot.messageRoom (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/src/robot.coffee:409:19,
<js>:379:42)
at /home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/scripts/helloops.coffee:34:7,
<js>:23:13
at callbacks (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/lib/router/index.js:161:37)
at param (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/lib/router/index.js:135:11)
at pass (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/lib/router/index.js:142:5)
at Router._dispatch (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/lib/router/index.js:170:5)
at Object.router (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/lib/router/index.js:33:10)
at next (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at IncomingForm.
<anonymous> (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/lib/middleware/multipart.js:119:31)
at IncomingForm.emit (events.js:92:17)
at IncomingForm._maybeEnd (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:533:8)
at MultipartParser.parser.onEnd (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:399:10)
at callback (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js:102:31)
at MultipartParser.write (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js:261:15)
at IncomingForm.write (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:141:34)
at IncomingMessage.
<anonymous> (/home/sodoku/Projekte/imagineasy/hubot/easybib-hubot/node_modules/hubot/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:110:12)
at IncomingMessage.emit (events.js:95:17)
at IncomingMessage.
<anonymous> (_stream_readable.js:764:14)
at IncomingMessage.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:426:10)
at emitReadable (_stream_readable.js:422:5)
at readableAddChunk (_stream_readable.js:165:9)
at IncomingMessage.Readable.push (_stream_readable.js:127:10)
at HTTPParser.parserOnBody [as onBody] (http.js:142:22)
at Socket.socket.ondata (http.js:1970:22)
at TCP.onread (net.js:527:27)
From #55:
Hubot will not work correctly if the bot is configured to use different name than the one the user who's credentials are used. We should investigate if we could use the api responses to set the name automatically to remove need for configuration and to prevent mistakes.
Hello,
i am using following dependencies
"dependencies": {
"hubot-flowdock": ">= 0.3.x",
"hubot": "2.3.2",
"hubot-scripts": ">= 2.1.0",
"optparse": "1.0.3"
},
after doing npm install
when i do hubot -a flowdock -d i am getting the below error. Could someone please help
[Tue May 06 2014 09:53:31 GMT+0530 (India Standard Time)] ERROR Cannot load adap
ter flowdock - Error: Cannot find module 'hubot-flowdock'
let me know if you need more information
Version 0.2.2 works.
The relevant log segment:
2012-03-03T09:43:10+00:00 app[app.1]: /app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:60
2012-03-03T09:43:10+00:00 app[app.1]: if (!util.isArray(flows)) flows = [flows];
2012-03-03T09:43:10+00:00 app[app.1]: ^
2012-03-03T09:43:10+00:00 app[app.1]: TypeError: Object #<Object> has no method 'isArray'
2012-03-03T09:43:10+00:00 app[app.1]: at Session.stream (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:60:17)
2012-03-03T09:43:10+00:00 app[app.1]: at Flowdock.connect (/app/node_modules/hubot-flowdock/src/flowdock.coffee:54:30)
2012-03-03T09:43:10+00:00 app[app.1]: at /app/node_modules/hubot-flowdock/src/flowdock.coffee:93:22
2012-03-03T09:43:10+00:00 app[app.1]: at Request._callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:54:16)
2012-03-03T09:43:10+00:00 app[app.1]: at Request.callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:118:22)
2012-03-03T09:43:10+00:00 app[app.1]: at Request.<anonymous> (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:459:16)
2012-03-03T09:43:10+00:00 app[app.1]: at Request.emit (events.js:64:17)
2012-03-03T09:43:10+00:00 app[app.1]: at IncomingMessage.<anonymous> (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:418:14)
2012-03-03T09:43:10+00:00 app[app.1]: at IncomingMessage.emit (events.js:81:20)
2012-03-03T09:43:10+00:00 app[app.1]: at HTTPParser.onMessageComplete (http.js:133:23)
2012-03-03T09:43:11+00:00 heroku[app.1]: Process exited with status 1
2012-03-03T09:43:11+00:00 heroku[app.1]: State changed from up to crashed
Currently the adapter creates a new author object on the fly for incoming messages and adds metadata to that object so that flow and thread information can be passed. This breaks scripts that expect the message.author to be the same instance that's stored in hubot's brain. Also a better way to add metadata like room/flow, thread info etc needs to be found.
I'm not sure this is possible, but it'd be great to tell hubot to delete it's last message.
I have been able to reproduce this same error on Heroku and my linux box.
From Heroku:
2013-04-21T16:34:16.942603+00:00 app[web.1]: TypeError: Uncaught, unspecified "error" event.
2013-04-21T16:34:16.942603+00:00 app[web.1]: at Request.self.callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:122:22)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at Session.EventEmitter.emit (events.js:74:15)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at Request.<anonymous> (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:661:16)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at TypeError (<anonymous>:null:null)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at Request.EventEmitter.emit (events.js:98:17)
2013-04-21T16:34:16.914958+00:00 app[web.1]:
2013-04-21T16:34:16.942603+00:00 app[web.1]: at Request._callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:49:17)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at Request.EventEmitter.emit (events.js:117:20)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at IncomingMessage.<anonymous> (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:623:14)
2013-04-21T16:34:16.943052+00:00 app[web.1]:
2013-04-21T16:34:16.943052+00:00 app[web.1]: at _stream_readable.js:883:14
2013-04-21T16:34:16.943052+00:00 app[web.1]: at process._tickCallback (node.js:415:13)
2013-04-21T16:34:16.942603+00:00 app[web.1]: at IncomingMessage.EventEmitter.emit (events.js:117:20)
From Linux
[XXX@XXX robothuman]$ bin/hubot -a flowdock -n Hubot
[Sun Apr 21 2013 17:03:40 GMT+0000 (UTC)] INFO /home/vox/webapps/hubot/hubot/robothuman/scripts/pugme.coffee is using deprecated documentation syntax
TypeError: Uncaught, unspecified "error" event.
at TypeError (<anonymous>:null:null)
at Session.EventEmitter.emit (events.js:74:15)
at Request._callback (/home/vox/webapps/hubot/hubot/robothuman/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:49:17)
at Request.self.callback (/home/vox/webapps/hubot/hubot/robothuman/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:122:22)
at Request.EventEmitter.emit (events.js:98:17)
at Request.<anonymous> (/home/vox/webapps/hubot/hubot/robothuman/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:661:16)
at Request.EventEmitter.emit (events.js:117:20)
at IncomingMessage.<anonymous> (/home/vox/webapps/hubot/hubot/robothuman/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:623:14)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:883:14
at process._tickCallback (node.js:415:13)
I have added username, password and heroku url configurations. I have updated node and npm to their latest versions. It looks like it is not handling an error from Flowdock properly. I have used 2 separate flowdock accounts, but they both receive the same error.
Any ideas?
Hi,
Our Hubot has lost the ability to use robot.messageRoom
sometime in the last week. Has something changed at the Flowdock end?
The syntax used previously was robot.messageRoom(room, message)
, where room
is in the form orgName/roomName
, e.g. acme/main
.
NPM packages has supported OS as os: [ 'linux', 'darwin' ] - but I can't see anything in the package that wouldn't work on windows?
I'm using Hubot 2.8.1 with Hubot-Flowdock 0.6.5.
I'm using msg.send
to send a message into a room with the hubot-flowdock adapter.
However, the message I send seems to sent as a reply message (i.e. nested), as opposed to just a normal message sent straight into the room:
I can understand is msg.reply
would set it as a reply message, but is it possible to have msg.send
just send a normal message into the room?
This also causes issue for users that are connected to Flowdock using IRC, as there, Flowdock will print the original entire line again, followed by >>
, followed by the next message. This is quite spammy.
Even if this wasn't the default behaviour of msg.send
(although I feel that it should be, since msg.reply
can be used for replies), is it possible to have some way of just sending a vanilla message into a Flowdock room?
node: 0.6.x, 0.8.x
npm: 1.0.x, 1.1.x
hubot: 2.2.0
Error:
2012-09-25T21:55:56+00:00 heroku[web.1]: Starting process with command `bin/hubot -a flowdock -n Hubot`
2012-09-25T21:55:56+00:00 app[web.1]: bin/hubot: 3: npm: not found
2012-09-25T21:55:57+00:00 app[web.1]: TypeError: Cannot call method 'on' of null
2012-09-25T21:55:57+00:00 app[web.1]: [Tue Sep 25 2012 21:55:57 GMT+0000 (UTC)] ERROR Cannot load adapter flowdock - TypeError: Cannot read property 'prototype' of undefined
2012-09-25T21:55:57+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/hubot/bin/hubot:105:19)
2012-09-25T21:55:57+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/hubot/bin/hubot:109:4)
2012-09-25T21:55:57+00:00 app[web.1]: at Module._compile (module.js:449:26)
2012-09-25T21:55:57+00:00 app[web.1]: at Object.exports.run (/app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/coffee-script.js:79:25)
2012-09-25T21:55:57+00:00 app[web.1]: at compileScript (/app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/command.js:177:29)
2012-09-25T21:55:57+00:00 app[web.1]: at fs.readFile (fs.js:176:14)
2012-09-25T21:55:57+00:00 app[web.1]: at fs.stat.notSources.(anonymous function) (/app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/command.js:152:18)
2012-09-25T21:55:57+00:00 app[web.1]: at Object.oncomplete (fs.js:297:15)
2012-09-25T21:55:58+00:00 heroku[web.1]: Process exited with status 1
No mods to the flowdock adapter or hubot. API change maybe?
I'm setting up a new hubot and apparently I'm having troubles with the flows, since it found zero. This is not handled well:
[Fri Jan 16 2015 10:46:57 GMT+0100 (CET)] INFO Found 0 flows.
[Fri Jan 16 2015 10:46:57 GMT+0100 (CET)] INFO Connecting to Flowdock as user undefined (id 123993).
[Fri Jan 16 2015 10:46:57 GMT+0100 (CET)] ERROR TypeError: Cannot call method 'toLowerCase' of undefined
at Flowdock.run (/home/markus/src/machtbot/node_modules/hubot-flowdock/src/flowdock.coffee:147:10, <js>:223:67)
at Request.Session.flows [as _callback] (/home/markus/src/machtbot/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:69:53)
at Request.init.self.callback (/home/markus/src/machtbot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:122:22)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at TypeError (:null:null)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at Session.EventEmitter.emit (events.js:74:15)
2013-10-29T19:54:18.283282+00:00 app[web.1]: TypeError: Uncaught, unspecified "error" event.
2013-10-29T19:54:18.283282+00:00 app[web.1]: at Request.self.callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:122:22)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at Request.EventEmitter.emit (events.js:98:17)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at Request._callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:68:17)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at Request. (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:661:16)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at IncomingMessage.EventEmitter.emit (events.js:117:20)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at IncomingMessage. (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:623:14)
2013-10-29T19:54:18.283454+00:00 app[web.1]: at process._tickCallback (node.js:415:13)
2013-10-29T19:54:18.283282+00:00 app[web.1]: at Request.EventEmitter.emit (events.js:117:20)
2013-10-29T19:54:18.283454+00:00 app[web.1]:
2013-10-29T19:54:18.283454+00:00 app[web.1]: at _stream_readable.js:920:16
New users that hubot sees are not added to the brain before a reconnection.
Hubot recieve messages but doesn't reply
I have the following package.json:
"dependencies": {
"hubot-flowdock": ">=0.4.0",
"hubot": ">= 2.4.6",
"coffee-script": "~> 1.4.0",
"optparse": "1.0.3",
"scoped-http-client": "0.9.7",
"log": "1.3.0",
"connect": "2.3.4",
"connect_router": "1.8.6"
},
I've been sent messages to hubot:
@hubot, help
@hubot: help
hubot help
hubot: help
....
Hubot doesn't reply.
It would be nice to have the ability to ignore certain users (a bot in our case) - we don't want to respond or reply to messages from that user.
Some other Hubot adapters (e.g. IRC) have this ability to ignore specific users:
Would it be possible to add this to hubot-flowdock as well?
Hello - thank you for making this adapter for hubot. It works for me. But it answers to "hubot xxx" only in the "Main" flowdock flow. Is there a way to make it answer in other flows? --Rick
Hello there, I was wondering if it's possible to get access to the flow name in the response msg in a user-script?
Hi,
Are you planning on supporting 1:1 chats with hubot over the hubot-flowdock adapter?
Cheers,
--larsw
I had to manually join a flow before I was able to progress past #70. This should be in the documentation somewhere.
Private messages have been added to Flowdock, but Hubot is unaware of those. Documentation for private messages API is currently in a separate branch.
When scripts use msg.reply
and the initiating message was in a private conversation, hubot should drop the @mention:
in front of the message.
Hubot now has support to sending messages to specific rooms.
Many hubot scripts do not work without this support.
I'm trying to set up Hubot on Heroku, and Heroku crashes on launch every time with the error above.
I've followed these instructions up until the parts about Campfire: https://github.com/github/hubot/wiki/Deploying-Hubot-onto-Heroku
I then followed these instructions: https://github.com/github/hubot/wiki/Adapter:-Flowdock
I've tried making sure that I'm using the latest version of the adapter (0.2.5) by specifying as much in my package.json, rather than using the '>= 0.0.1' specified in the instructions linked above.
Here's my full trace:
TypeError: Object #<Flowdock> has no method 'emit'
at Flowdock.run (/app/node_modules/hubot-flowdock/src/flowdock.coffee:94:19)
at Robot.run (/app/node_modules/hubot/src/robot.coffee:225:27)
at Object.<anonymous> (/app/node_modules/hubot/bin/hubot:105:11)
at Object.<anonymous> (/app/node_modules/hubot/bin/hubot:108:4)
at Module._compile (module.js:404:26)
at Object.run (/app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/coffee-script.js:66:25)
at /app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/command.js:147:29
at /app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/command.js:115:19
at [object Object].<anonymous> (fs.js:107:5)
at [object Object].emit (events.js:61:17)
Any help would be appreciated. Thanks!
I would like to start implementing "activity" type of messages, as per this API doc https://www.flowdock.com/api/message-types#/activity
The first use case is to create activities for Gerrit events coming from Hubot Gerrit script - https://github.com/github/hubot-scripts/blob/master/src/scripts/gerrit.coffee
At a first look, I need to modify both.
Any recommendation on implementing this on the flowdock adapter? I'd like to do it right.
Hi. I have deployed hubot to heroku and made all the config for the flowdock adapter.
The app starts up just fine with the log:
2012-01-03T00:11:27+00:00 heroku[app.1]: Starting process with command bin/hubot -a flowdock -n Hubot --alias '/'
2012-01-03T00:11:27+00:00 app[app.1]: bin/hubot: 3: npm: not found
2012-01-03T00:11:27+00:00 app[app.1]: [Tue, 03 Jan 2012 00:11:27 GMT] INFO Loading adapter flowdock
2012-01-03T00:11:27+00:00 app[app.1]: [Tue, 03 Jan 2012 00:11:27 GMT] INFO Loading scripts from /app/scripts
2012-01-03T00:11:27+00:00 app[app.1]: [Tue, 03 Jan 2012 00:11:27 GMT] INFO Loading scripts from /app/src/scripts
2012-01-03T00:11:27+00:00 app[app.1]: [Tue, 03 Jan 2012 00:11:27 GMT] INFO Loading hubot-scripts from /app/node_modules/hubot-scripts/src/scripts
2012-01-03T00:11:27+00:00 app[app.1]: [Tue, 03 Jan 2012 00:11:27 GMT] INFO Successfully connected to Redis
2012-01-03T00:11:27+00:00 heroku[app.1]: State changed from starting to up
The hubot user is logged in, but does not reply to anything. Nothing shows up in the logs either.
In my packages.json I have:
{
"name": "hosted-hubot",
"version": "0.2.0",
"author": "GitHub Inc.",
"keywords": "github hubot campfire bot",
"description": "A simple helpful Robot for your Company",
"licenses": [{
"type": "MIT",
"url": "http://github.com/github/hubot/raw/master/LICENSE"
}],
"repository" : {
"type" : "git",
"url" : "http://github.com/github/hubot.git"
},
"dependencies": {
"hubot-flowdock": "0.1.2",
"hubot": "2.0",
"hubot-scripts": "2.0.4",
"optparse": "1.0.3"
}
}
I just can't get this to work, and was wondering if someone else had has this problem?
I get this behavior from OS X 10.9.2 (locally) and Windows 2012 (running on Azure). In both cases, I'm running:
Node 0.10.26
Hubot: 2.7.1
Flowdock-hubot: 0.6.0
Env. Vbl:
PORT = 8181
I created a new gmail account with a first name of Hubot, added the user to my Flowdock organization with an alias of Hubot. I logged in as the user and verified that it could join a room.
I setup the environment variables (I neglected to do this the first time and got an exception to that effect), and I launch hubot bin\hubot.cmd -a flowdock
. Hubot inits, and I can immediately hit http://localhost:8181/hubot/help and get a response.
There are no errors in the console/command prompt and no other content seems to be logged that I can find. Hubot seems to be functional, but there is no activity inside Flowdock. The user does not appear online and no variation of Hubot help
will elicit a response. I get the same behavior in OS X as I do on Windows.
My hubot-scripts.json is empty. Here is my package.json:
{
"name": "Hubot",
"version": "2.7.1",
"author": "GitHub Inc.",
"keywords": [
"github",
"hubot",
"campfire",
"bot"
],
"description": "A simple helpful robot for your Company",
"licenses": [{
"type": "MIT",
"url": "https://github.com/github/hubot/raw/master/LICENSE"
}],
"repository" : {
"type": "git",
"url": "https://github.com/github/hubot.git"
},
"dependencies": {
"coffee-script": "1.6.2",
"hubot-flowdock": ">= 0.6.0",
"hubot": ">= 2.6.0 < 3.0.0",
"hubot-scripts": ">= 2.5.0 < 3.0.0"
},
"engines": {
"node": ">= 0.8.x",
"npm": ">= 1.1.x"
}
}
matt@Hades Programming/hubot (master *%) » npm install
npm ERR! Error: version not found: 2.0.0 : hubot/2.0.0
The NPM registry only has versions 2.0.3 and 2.0.3 for hubot.
I have some URLs that return images, but don't have a .png or .jpg in them (http://someUrl.com/image). I'd love for my hubot to be able to embed the image in a flow instead of just showing a URL. Is there a way to do that?
(Sorry, I know this isn't exactly an issue, but I wasn't sure where I could get support).
Hi,
I've wanted to try out the messageRoom functionality. Unfortunately I'm having problems with it, either my script is wrong, or I'm using it wrong.The script I wrote essentially does nothing (apart from logging to console). All i get is an entry in the logs: 2014-12-10_12:38:28.19080 [Wed Dec 10 2014 12:38:28 GMT+0000 (UTC)] DEBUG Message 'hubot test222222' matched regex //^[@]?hubot[:,]?\s*(?:test222222)/i/ 2014-12-10_12:38:28.19116 sent message
. Any help would be appreciated.
The script:
module.exports = (robot) ->
robot.respond /test222222/i, (msg) ->
room = '624dbb2a-64c4-4e74-8bda-05ce7d4856ab'
robot.messageRoom room, 'Hello'
console.log 'sent message'
I got the room id, by doing a call to the flowdock api, like this:
curl -X GET https://<user>:<pass>@api.flowdock.com/flows
My setup:
"dependencies": {
"coffee-script": "1.6.3",
"hubot-flowdock": "0.6.0",
"optparse": "1.0.4",
"scoped-http-client": "0.9.8",
"log": "1.4.0",
"express": "3.3.4",
"aws-sdk" : "2.0.29"
},
hubot version - 2.4.6
Hello,
I tried to install a fresh hubot on heroku but it didn't work.
When it is starting in heroku logs i see :
2013-07-01T23:46:25.321692+00:00 heroku[web.1]: Starting process with command `bin/hubot -a flowdock -n Hubot`
2013-07-01T23:46:25.961416+00:00 app[web.1]: bin/hubot: 3: npm: not found
2013-07-01T23:46:27.498825+00:00 heroku[web.1]: State changed from starting to up
2013-07-01T23:46:27.305066+00:00 app[web.1]: [Mon Jul 01 2013 23:46:27 GMT+0000 (UTC)] WARNING The HUBOT_AUTH_ADMIN environment variable not set
2013-07-01T23:46:27.727241+00:00 app[web.1]: [Mon Jul 01 2013 23:46:27 GMT+0000 (UTC)] INFO Disabling brain auto-saving
2013-07-01T23:46:27.751827+00:00 app[web.1]: [Mon Jul 01 2013 23:46:27 GMT+0000 (UTC)] ERROR Unable to load /app/node_modules/hubot-scripts/src/scripts/tweet: Error: Cannot find module 'ntwitter'
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:338:15)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Function.Module._load (module.js:280:25)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Module.require (module.js:364:17)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at require (module.js:380:17)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/hubot-scripts/src/scripts/tweet.coffee:4:14)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/hubot-scripts/src/scripts/tweet.coffee:64:4)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Module._compile (module.js:456:26)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Object.loadFile (/app/node_modules/hubot/node_modules/coffee-script/lib/coffee-script/coffee-script.js:179:19)
2013-07-01T23:46:27.751827+00:00 app[web.1]: at Module.load (module.js:356:32)
2013-07-01T23:46:27.752017+00:00 app[web.1]: at Function.Module._load (module.js:312:12)
2013-07-01T23:46:27.752017+00:00 app[web.1]: at Module.require (module.js:364:17)
2013-07-01T23:46:27.752017+00:00 app[web.1]: at require (module.js:380:17)
2013-07-01T23:46:27.752017+00:00 app[web.1]: at Robot.loadFile (/app/node_modules/hubot/src/robot.coffee:133:11)
2013-07-01T23:46:27.752017+00:00 app[web.1]: at Robot.loadHubotScripts (/app/node_modules/hubot/src/robot.coffee:169:28)
2013-07-01T23:46:27.752017+00:00 app[web.1]: at /app/node_modules/hubot/bin/hubot:98:15, <js>:101:30
2013-07-01T23:46:27.752017+00:00 app[web.1]: at fs.js:266:14
2013-07-01T23:46:27.752017+00:00 app[web.1]: at Object.oncomplete (fs.js:107:15)
2013-07-01T23:46:27.752017+00:00 app[web.1]:
2013-07-01T23:46:29.055253+00:00 heroku[web.1]: Process exited with status 1
2013-07-01T23:46:29.068622+00:00 heroku[web.1]: State changed from up to crashed
here is what i have in my package json
{
"name": "hosted-hubot",
"version": "2.5.5",
"author": "GitHub Inc.",
"keywords": [
"github",
"hubot",
"campfire",
"bot"
],
"description": "A simple helpful robot for your Company",
"licenses": [{
"type": "MIT",
"url": "http://github.com/github/hubot/raw/master/LICENSE"
}],
"repository" : {
"type": "git",
"url": "https://github.com/github/hubot.git"
},
"dependencies": {
"hubot-flowdock": "0.5.x",
"hubot": "2.5.x",
"hubot-scripts": "2.4.6"
},
"engines": {
"node": ">= 0.8.x",
"npm": ">= 1.1.x"
}
}
node: 0.10.0
npm: 1.2.14
hubot: 2.4.8
I've done the following:
Cloned the latest hubot.
Added
"hubot-flowdock": ">= 0.0.1",
just underneath dependencies in my package.json
run npm install
then running ./bin/hubot -a flowdock -d
Produces the following error:
ERROR Cannot load adapter flowdock - Error: Cannot find module 'hubot'
What am I missing? How can I run my hubot flowdock? I've found a lot of results for this exact problem on google, but could not find any conclusive solution.
For completeness, the following is my package.json
{
"name": "hubot",
"version": "2.4.8",
"author": "hubot",
"keywords": ["github","hubot","campfire","bot"],
"description": "A simple helpful Robot for your Company",
"licenses": [{
"type": "MIT",
"url": "http://github.com/github/hubot/raw/master/LICENSE"
}],
"repository" : {
"type": "git",
"url": "https://github.com/github/hubot.git"
},
"dependencies": {
"hubot-flowdock": ">= 0.0.1",
"coffee-script": "1.6.1",
"optparse": "1.0.4",
"scoped-http-client": "0.9.8",
"log": "1.3.1",
"connect": "2.7.3",
"connect_router": "1.8.7"
},
"engines": {
"node": ">= 0.8.x",
"npm": ">= 1.1.x"
},
"main": "./index",
"bin": {
"hubot": "./bin/hubot"
}
}
And the output of npm list
[email protected] /Users/gb/workspace/hubot
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
Additional sidenote: just running ./bin/hubot
runs Hubot successfully minus the flowdock adapter...
We use Flowdock's threads in our flows but have noticed that commands to hubot are ignored when they're part of a thread. If we make the same command outside a thread hubot responds.
I'm running a hubot instance with hubot-flowdock, and I can successfully log in to flows and hubot to respond twice. However, after this it crashes with the following error:
Error: Uncaught, unspecified 'error' event.
at Session.EventEmitter.emit (events.js:68:15)
at Request.Session.send [as _callback] (/home/tfall/hubot/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:106:17)
at Request.init.self.callback (/home/tfall/hubot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:122:22)
at Request.EventEmitter.emit (events.js:91:17)
at Request.<anonymous> (/home/tfall/hubot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:661:16)
at Request.EventEmitter.emit (events.js:115:20)
at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/home/tfall/hubot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:623:14)
at IncomingMessage.EventEmitter.emit (events.js:115:20)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)
at CleartextStream.socketOnData [as ondata] (http.js:1366:20)
at CleartextStream.CryptoStream._push (tls.js:485:27)
at SecurePair.cycle (tls.js:839:20)
at EncryptedStream.CryptoStream.write (tls.js:220:13)
at Socket.ondata (stream.js:38:26)
at Socket.EventEmitter.emit (events.js:88:17)
at TCP.onread (net.js:403:14)
It may also be relevant that the command ping
gives two pongs
in chat.
Edit: hubot always gives two responses to every command.
I've got my hubot running on a heroku box, it logs in but cannot respond to any command because it crashes. The error log is below, it looks like the flow variable isn't being set somehow?
uri.path = "/flows/" + (flow.replace(':', '/')) + "/messages";
/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:71
^
TypeError: Cannot call method 'replace' of undefined
at Session.send (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:71:36)
at Flowdock.send (/app/node_modules/hubot-flowdock/src/flowdock.coffee:25:32)
at Session.message (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:102:19)
at IncomingMessage.EventEmitter.emit (events.js:126:20)
at IncomingMessage.ScopedClient.request (/app/node_modules/hubot/node_modules/scoped-http-client/lib/index.js:61:20)
at module.exports (/app/scripts/pugme.coffee:18:29)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)
at IncomingMessage._emitEnd (http.js:366:10)
at Response.send (/app/node_modules/hubot/src/response.coffee:20:47)
at Socket.socketOnData [as ondata] (http.js:1367:20)
( my packages.json )
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
},
"dependencies": {
"hubot-flowdock": ">= 0.0.1",
"hubot": ">= 2.0.0",
"hubot-scripts": ">= 2.0.2",
}
Hey,
I receive this error everytime I try to run hubot. I've set up Hubot on Heroku, and also tried to reinstall the whole system, but I continue getting this exception, here is a little dump hope this can help you.
2012-03-05T17:08:46+00:00 heroku[web.1]: Starting process with command `bin/hubot -a flowdock -n Hubot`
2012-03-05T17:08:46+00:00 app[web.1]: bin/hubot: 3: npm: not found
2012-03-05T17:08:47+00:00 app[web.1]: [Mon, 05 Mar 2012 17:08:47 GMT] INFO Loading scripts from /app/scripts
2012-03-05T17:08:47+00:00 app[web.1]: [Mon, 05 Mar 2012 17:08:47 GMT] INFO Loading scripts from /app/src/scripts
2012-03-05T17:08:48+00:00 app[web.1]: [Mon, 05 Mar 2012 17:08:48 GMT] INFO Loading hubot-scripts from /app/node_modules/hubot-scripts/src/scripts
2012-03-05T17:08:48+00:00 app[web.1]:
2012-03-05T17:08:48+00:00 app[web.1]: ^
2012-03-05T17:08:48+00:00 app[web.1]: if (!util.isArray(flows)) flows = [flows];
2012-03-05T17:08:48+00:00 app[web.1]: /app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:60
2012-03-05T17:08:48+00:00 app[web.1]: TypeError: Object #<Object> has no method'isArray'
2012-03-05T17:08:48+00:00 app[web.1]: at /app/node_modules/hubot-flowdock/src/flowdock.coffee:93:22
2012-03-05T17:08:48+00:00 app[web.1]: at Request.<anonymous> (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:459:16)
2012-03-05T17:08:48+00:00 app[web.1]: at Request.callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:118:22)
2012-03-05T17:08:48+00:00 app[web.1]: at Request._callback (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:54:16)
2012-03-05T17:08:48+00:00 app[web.1]: at IncomingMessage.emit (events.js:81:20)
2012-03-05T17:08:48+00:00 app[web.1]: at Flowdock.connect (/app/node_modules/hubot-flowdock/src/flowdock.coffee:54:30)
2012-03-05T17:08:48+00:00 app[web.1]: at Session.stream (/app/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:60:17)
2012-03-05T17:08:48+00:00 app[web.1]: at Request.emit (events.js:64:17)
2012-03-05T17:08:48+00:00 app[web.1]: at IncomingMessage.<anonymous> (/app/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:418:14)
2012-03-05T17:08:48+00:00 app[web.1]: at HTTPParser.onMessageComplete (http.js:133:23)
2012-03-05T17:08:49+00:00 heroku[web.1]: Process exited with status 1
2012-03-05T17:08:49+00:00 heroku[web.1]: State changed from starting to crashed
I have a script that's listening for a certain string (using robot.hear
), and then sending a message back (using msg.send
) that also happens to contains that string.
However, Hubot in Flowdock hears itself, and hence just endless repeats the same message.
I just wanted to confirm - is this intended behaviour?
Is there any way to stop Hubot from hearing itself?
(The IRC adapter has an ignore array - nandub/hubot-irc#106).
I'm trying to install the flowdock adapter on hubot running on a Mac. When I try to npm install hubot-flowdock
I get the following:
npm WARN package.json [email protected] No repository field.
npm http GET https://registry.npmjs.org/hubot-flowdock
npm http 304 https://registry.npmjs.org/hubot-flowdock
npm http GET https://registry.npmjs.org/flowdock
npm http 304 https://registry.npmjs.org/flowdock
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm http GET https://registry.npmjs.org/buffertools/1.1.0
npm http GET https://registry.npmjs.org/request/2.12.0
npm http 304 https://registry.npmjs.org/buffertools/1.1.0
npm http 304 https://registry.npmjs.org/request/2.12.0
> [email protected] install /Users/tfall/Code/hubot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/buffertools
> node-gyp rebuild
gyp http GET http://nodejs.org/dist/v0.10.9/node-v0.10.9.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.9/node-v0.10.9.tar.gz
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: incorrect header check
gyp ERR! stack at Zlib._binding.onerror (zlib.js:295:17)
gyp ERR! System Darwin 12.3.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/tfall/Code/hubot/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/buffertools
gyp ERR! node -v v0.10.9
gyp ERR! node-gyp -v v0.9.6
gyp ERR! not ok
npm ERR! weird error 1
npm ERR! not ok code 0
When installing a fresh hubot & hubot-flowdock, I'm unable to start the bot.
$ git clone git://github.com/github/hubot.git hubot.new
$ cd hubot.new
$ vi package.json # add dependecy "hubot-flowdock": ">= 0.0.1"
$ npm install
$ bin/hubot -a flowdock -d
Output:
[Fri, 10 Feb 2012 18:38:12 GMT] ERROR Cannot load adapter flowdock - Error: Cannot find module 'hubot'
[Fri, 10 Feb 2012 18:38:12 GMT] INFO Loading scripts from /home/tedconf/src/hubot.new/scripts
[Fri, 10 Feb 2012 18:38:12 GMT] INFO Loading scripts from /home/tedconf/src/hubot.new/src/scripts
TypeError: Cannot call method 'run' of null
at Robot.run (/home/tedconf/src/hubot.new/src/robot.coffee:281:27)
at Object.<anonymous> (/home/tedconf/src/hubot.new/bin/hubot:81:11)
at Object.<anonymous> (/home/tedconf/src/hubot.new/bin/hubot:83:4)
at Module._compile (module.js:411:26)
at Object.run (/usr/lib/node_modules/coffee-script/lib/coffee-script.js:57:25)
at /usr/lib/node_modules/coffee-script/lib/command.js:147:29
at /usr/lib/node_modules/coffee-script/lib/command.js:115:26
at [object Object].<anonymous> (fs.js:107:5)
at [object Object].emit (events.js:61:17)
at afterRead (fs.js:878:12)
Not sure what to do next. The hubot will start OK when using the shell adapter.
hubot became unresponsive when I did an npm update which picked up hubot-flowdock 0.7.5. No errors on the console, just did not respond. I rolled back to 0.7.4 and everything is happy again.
Was there some kind of fundamental change in 0.7.5 or node-flowdock 0.9? I can't really tell from the commit logs.
[Wed Mar 11 2015 05:26:38 GMT-0400 (EDT)] INFO Found 2 flows.
[Wed Mar 11 2015 05:26:38 GMT-0400 (EDT)] INFO Connecting to Flowdock as user koubot (id 94314).
[Wed Mar 11 2015 05:26:38 GMT-0400 (EDT)] INFO Flowdock: connecting
[Wed Mar 11 2015 05:26:38 GMT-0400 (EDT)] INFO Flowdock: connected and streamin
Re: https://github.com/github/hubot/blob/master/CHANGELOG.md#v230
Note this is a breaking change for adapters. Adapters are going to want to
use the following code snippet for requiring classes from hubot.{Adapter,Robot} = require 'hubot'
I'm trying to integrate Hubot with flowdock, but i get this error:
[email protected] node_modules/hubot-flowdock
└── [email protected] ([email protected], [email protected])
Hubot> [Sun Sep 28 2014 23:40:31 GMT+0200 (CEST)] ERROR [Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED]
Does hubot-flowdock need redis?
On startup, I'm getting:
[Thu Apr 05 2012 17:54:08 GMT-0400 (EDT)] ERROR Cannot load adapter flowdock - Error: Cannot find module 'hubot'
TypeError: Cannot call method 'on' of null
at Object. (/var/www/flowdock-hubot/bin/hubot:105:19)
at Object. (/var/www/flowdock-hubot/bin/hubot:109:4)
at Module._compile (module.js:441:26)
at Object.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at /usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29
at /usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18
at [object Object]. (fs.js:115:5)
at [object Object].emit (events.js:64:17)
at afterRead (fs.js:1117:12)
at Object.wrapper as oncomplete
This seems to be similar to another adapter, with a patch: hipsterjazzbo/hubot-hipchat@8963590
I applied the same change, but cannot verify if it's working -- hubot starts up, but has no console output and does not appear to connect to the flow.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.