A (very simple) hubot script for sending messages to a channel/room via HTTP POST requests to your bot.
Install script package in your bot's repository:
npm install --save hubot-incoming-webhook
Add to external_scripts.json
:
[
"hubot-incoming-webhook"
]
Set the WEBHOOK_TOKEN
environment variable to a secret string of your choice
when running the bot. It will be used in the incoming webhook URLs.
The generic Webhook allows you to send arbitrary messages to a room of your choice, by POSTing a simple JSON body to the webhook URL.
The URL is constructed as follows: http(s)://<host>:<port>/incoming/<your-secret-token>
Key | Value |
---|---|
room | (string) The room/channel you want to post to. |
message | (string/array) The message you want to post. Can be an array for multiple lines. |
Example:
curl -X POST -H "Content-Type: application/json" \
-d '{"room": "#kosmos", "message": "ohai"}' \
http://127.0.0.1:8080/incoming/your-secret-token
This hook allows you to receive hooks from UptimeRobot, and announce your account's uptime status changes/events in a room of your choice.
The URL is constructed as follows: http(s)://<host>:<port>/incoming/uptimerobot/<your-secret-token>
In UptimeRobot's settings, add the following webhook as an alert contact (you must set the room that you want the bot to send messages to):
http(s)://<host>:<port>/incoming/uptimerobot/<your-secret-token>?room=ops@example.com&
Don't forget the trailing ampersand, this is required so UptimeRobot can add their query strings to the request for the monitor ID, status, and so on.
Enable the webhook Alert Contact for each monitor. You can perform a bulk action to do it for all at once.
Key | Description |
---|---|
WEBHOOK_TOKEN |
A string for building your secret webhook URLs |
Include the hash character for IRC channels in the room
value.
Find the unique ID of the channel (not the display name) and use it for the room
value.
The tests are inside of the test
folder. To run them:
npm test