Могу ли я отправить пользовательские свойства / данные в прикрепленных сообщениях?

Я хочу отправить некоторые пользовательские свойства во вложении для интерактивных сообщений и получить их обратно в ответ на действие. Есть ли способ сделать это?

1 ответ

Решение

Да, это возможно. Тем не менее, это работает только для небольших наборов данных.

Предполагая, что мы говорим о кнопках, обычный подход будет использовать value поле действия для переноса пользовательских данных, в зависимости от того, на какую кнопку пользователь нажал кнопку назад в вашем приложении. Поле представляет собой обычную строку в сообщении JSON, которое отправляется POST-запросом в ваше приложение. Таким образом, он может в принципе содержать целый набор данных, а не только одно значение. Все, что вам нужно сделать, это включить его в вложение кнопки, которое отправляется в Slack, и ваше приложение получит соответствующее поле значения обратно. (в зависимости от того, какие данные вы хотите отправить, вам может понадобиться их кодировать, например, вы хотите кодировать двоичные данные в base64, чтобы их можно было передавать в виде строки JSON)

Я успешно использовал его в одном из своих приложений для передачи сериализованных объектов, содержащих информацию о контексте приложения пользователя.

Есть одно предостережение, которое заставило меня позже отказаться от этого подхода снова. Как я выяснил, длина поля ограничена, поэтому, если ваша строка слишком длинная, вы можете получить усеченные данные. По моей оценке, предел составляет около 2.000 символов, но у меня нет определенного числа.

Вместо передачи всех данных во вложении я теперь сохраняю контекст пользовательского приложения в сеансе сервера (PHP) и передаю только идентификаторы через value поле моих кнопок.

Вывод: если у вас есть небольшие наборы данных, вы можете передать их через value поле. Если у вас есть большие наборы данных, я бы не рекомендовал это.

Другие вопросы по тегам