Slack API - получить значения других компонентов из того же сообщения при нажатии кнопки - PullRequest
1 голос
/ 10 мая 2019

У меня есть это интерактивное сообщение:

 [
    {
        "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "The number of items you want to see (Top X)"
        },
        "accessory": {
            "type": "static_select",
            "placeholder": {
                "type": "plain_text",
                "text": "X",
                "emoji": true
            },
            "options": [
                {
                    "text": {
                        "type": "plain_text",
                        "text": "1",
                        "emoji": true
                    },
                    "value": "1"
                }
            ]
        }
    },
    {
        "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "The criteria you want to group by"
        },
        "accessory": {
            "type": "static_select",
            "placeholder": {
                "type": "plain_text",
                "text": "Select a criteria",
                "emoji": true
            },
            "options": [
                {
                    "text": {
                        "type": "plain_text",
                        "text": "criteria1",
                        "emoji": true
                    },
                    "value": "criteria1"
                }
            ]
        }
    },
    {
        "type": "actions",
        "elements": [
            {
                "type": "button",
                "text": {
                    "type": "plain_text",
                    "text": "Fetch P&L",
                    "emoji": false
                }
            }
        ]
    }
]

the message

Как я могу получить значения, выбранные пользователем в 2 раскрывающихся меню, когда она нажимает кнопку?

Дело не в полезной нагрузке, которую я получаю от Слэка. Я использую библиотеки NodeJS для связи со Slack в приложении express и хотел бы решение, которое также использует их.

1 Ответ

0 голосов
/ 10 мая 2019

Интерфейс Slack работает немного иначе, чем стандартная форма HTTP.

Каждый интерактивный компонент (например, кнопка выбора или) является отдельным, и когда пользователь нажимает на него, Slack отправляет запрос, содержащий только информацию об этом компоненте, в ваше приложение.

Чтобы объединить несколько интерактивных компонентов, у вас есть два варианта:

  • Вы можете запросить в несколько шагов. Итак, вы сначала отправляете сообщение с просьбой указать количество товаров. Затем пользователь делает свой выбор, и ваше приложение получает запрос от Slack. Затем ваше приложение заменяет сообщение и запрашивает критерии. и так далее.
  • Или вы можете использовать Slack Dialog . Это будет показано как модальное окно и позволяет запросить до 5 элементов за один шаг.
...