【发布时间】:2017-08-31 09:25:08
【问题描述】:
我想在附件中为交互式消息发送一些自定义属性,并在操作响应中取回它们。有没有办法做到这一点?
【问题讨论】:
我想在附件中为交互式消息发送一些自定义属性,并在操作响应中取回它们。有没有办法做到这一点?
【问题讨论】:
是的,这是可能的。但是,它只适用于少量数据。
假设我们正在讨论按钮,通常的方法是使用操作的 value 字段来传输自定义数据,该数据基于用户单击哪个按钮返回到您的应用程序。该字段是 JSON 消息中的普通字符串,通过 POST 请求发送到您的应用程序。所以原则上它可以包含一个完整的数据集,而不仅仅是一个值。您需要做的就是将其包含在发送到 Slack 的按钮附件中,您的应用程序将收到相应的值字段。 (取决于您要发送的数据,您可能需要对其进行编码,例如,您要将二进制数据编码为 base64,以便可以作为 JSON 字符串传输)
我已在我的一个应用程序中成功使用它来传输包含有关用户应用程序上下文信息的序列化对象。
但有一个警告,导致我后来再次放弃这种方法。我发现字段长度是有限的,所以如果你的字符串太长,你可能会得到截断的数据。据我估计,限制大约是 2.000 个字符,但我没有确定的数字。
我现在不是传输附件中的所有数据,而是将用户应用程序上下文保存在服务器会话 (PHP) 中,并且仅通过按钮的 value 字段传输 ID。
结论:如果您有少量数据,您可以通过value 字段传输它们。如果你有更大的数据集,我不会推荐它。
【讨论】: