Search code examples
node.jsslackslack-api

How to parse interaction messages coming from Slack?


I want to parse interaction message requests coming from Slack. This is what Slack says in their docs:

The body of that request will contain a payload parameter. Your app should parse this payload parameter as JSON.

That seemed straightforward, so I parsed it like so:

JSON.parse(decodeURIComponent(body.split('=')[1]))

However, in the string-fields of the resulting object, I see pluses instead of spaces:

"There+should+not+be+pluses+here"

What am I doing wrong here?


Solution

  • Took a look at their library here, and it turns out, they use node's querystring.parse().

    So the parsing procedure should look like this:

    JSON.parse(querystring.parse(body).payload)