Я пытаюсь создать функцию Azure для приема запросов POST от Взаимодействия с сообщениями в Slack. Я могу получить тестовый запрос после это руководство, используя ngrok
. Однако полезная нагрузка не поступает, как обычное тело запроса 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...
Как преобразовать эти полезные данные параметра POST в JSON в функции Azure?
С помощью этого сообщение я смог понять это для своего варианта использования.
Использование пакета qsnpm 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',
...
}