Created
September 8, 2016 22:15
-
-
Save pdtyreus/029947a42c5af460c617947170dbdec5 to your computer and use it in GitHub Desktop.
Slack chat.postMessage with attachments
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var http = require("https"); | |
var querystring = require('querystring'); | |
//2 attachments as JavaScript Objects | |
var attachments = [{ | |
fallback: "Attachment 1 Fallback", | |
title: "This is Attachment 1", | |
text: "Attachment 1 Text", | |
color: "#3964db" | |
}, { | |
fallback: "Attachment 2 Fallback", | |
title: "This is Attachment 2", | |
text: "Attachment 2 Text", | |
color: "#3964db" | |
}]; | |
//add the attachments to the message by stringify-ing them | |
//posting without stringify-ing the attachments will lead to an error from the Slack API | |
var message = { | |
token: "your-token", | |
channel: "@daniel", | |
as_user: false, | |
username: "daniel", | |
attachments: JSON.stringify(attachments), | |
text: "This is a message with attachments" | |
} | |
var qs = querystring.stringify(message); | |
var options = { | |
"method": "GET", | |
"hostname": "slack.com", | |
"path": "/api/chat.postMessage?" + qs | |
}; | |
var req = http.request(options, function (res) { | |
var chunks = []; | |
res.on("data", function (chunk) { | |
chunks.push(chunk); | |
}); | |
res.on("end", function () { | |
var body = Buffer.concat(chunks); | |
console.log(body.toString()); | |
}); | |
}); |
+1 Thanks!
+1 Thanks!
๐ Awesome! Thanks! ๐
๐ tks a lot
Nice. ๐
First result in Google about the Slack invalid_array_arg
error. Thanks a lot ๐
method should be POST now
https://api.slack.com/methods/chat.postMessage
This is still true even though the endpoint is POST now, so so bad
https://api.slack.com/methods/chat.postMessage#arg_attachments
A JSON-based array of structured attachments, presented as a URL-encoded string
So it's not JSON, it's JSON-based
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you, I needed this!