I want to send some custom properties in the attachment for interactive messages and retrieve them back in the action response. is there a way to do this?
答案 0 :(得分:6)
是的,这是可能的。但是,它仅适用于小型数据集。
假设我们正在谈论按钮,通常的做法是使用操作的value
字段根据用户点击回应用的按钮来传输自定义数据。该字段是JSON消息中的普通字符串,它通过POST请求发送到您的应用程序。因此它原则上可以包含整个数据集,而不仅仅是单个值。您需要做的就是将其包含在发送给Slack的按钮附件中,您的应用将返回相应的值字段。 (根据您要发送的数据,您可能需要对其进行编码,例如,您希望将二进制数据编码为base64,以便可以将其作为JSON字符串传输)
我在其中一个应用程序中成功使用它来传输包含有关用户应用程序上下文信息的序列化对象。
但有一点需要注意,这让我后来又放弃了这种方法。我发现字段长度是有限的,所以如果你的字符串太长,你可能会得到截断的数据。在我的估计中,限制是大约2.000个字符,但我没有确定的数字。
我现在将用户应用程序上下文保留在服务器会话(PHP)中,而不是传输附件中的所有数据,而只通过我的按钮的value
字段传输ID。
结论:如果您拥有少量数据,则可以通过value
字段进行传输。如果你有更大的数据集,我不推荐它。