在 Azure Functions 中将 Slack Interactive Message POST 有效负载参数解析为 JSON
Parsing Slack Interactive Message POST payload parameter to JSON in Azure Functions
我正在尝试创建一个 Azure 函数来使用 ngrok
从 Slack Message Interactions. I'm able to get a test request to come in following this guide 接收 POST 请求。然而,有效载荷并没有像正常的 POST 请求主体那样进入。假设这是因为它是一个“参数”有效载荷而不是主体。
module.exports = async (context, req) => {
const { body } = req;
context.log(body);
context.res = {
body,
};
};
输出:
payload=%7B%22type%22%3A%22block_actions%22%2C%22user%22%3A%7B%22id%22%3A%22xxx%22%2C%22username%22%3A%22...
如何在 Azure 函数中将此 POST 参数负载解析为 JSON?
在这个 post 的帮助下,我能够为我的用例解决这个问题。
使用 qs 包 npm i qs
const { parse } = require('qs');
module.exports = async (context, req) => {
const payload = JSON.parse(parse(req.rawBody).payload);
context.log(payload);
context.res = {
payload,
};
};
输出:
{
type: 'block_actions',
user: {
id: 'xxx',
username: 'xxx',
name: 'xxx',
team_id: 'xxx'
},
api_app_id: 'xx',
...
}
我正在尝试创建一个 Azure 函数来使用 ngrok
从 Slack Message Interactions. I'm able to get a test request to come in following this guide 接收 POST 请求。然而,有效载荷并没有像正常的 POST 请求主体那样进入。假设这是因为它是一个“参数”有效载荷而不是主体。
module.exports = async (context, req) => {
const { body } = req;
context.log(body);
context.res = {
body,
};
};
输出:
payload=%7B%22type%22%3A%22block_actions%22%2C%22user%22%3A%7B%22id%22%3A%22xxx%22%2C%22username%22%3A%22...
如何在 Azure 函数中将此 POST 参数负载解析为 JSON?
在这个 post 的帮助下,我能够为我的用例解决这个问题。
使用 qs 包 npm i qs
const { parse } = require('qs');
module.exports = async (context, req) => {
const payload = JSON.parse(parse(req.rawBody).payload);
context.log(payload);
context.res = {
payload,
};
};
输出:
{
type: 'block_actions',
user: {
id: 'xxx',
username: 'xxx',
name: 'xxx',
team_id: 'xxx'
},
api_app_id: 'xx',
...
}