- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的工作区开发一系列 Slack 应用程序,其中一些旨在与其他应用程序传递的内容(消息)进行交互:提取可能被其他消息引用的内容 ID
一个具体的例子:
假设我有一个应用程序“FindUser”,它能够在松弛用户键入 find me@example.com
时为我提供用户配置文件。 ,并在线程中回复用户配置文件的格式化 View
我正在开发一个应用程序 B“EditTags”,它基本上为我提供了一个带有“编辑标签”的右键单击选项(请参阅 Slack 的交互式组件/操作),其想法是用户可以首先要求应用程序 A 查找用户,然后右键单击来自应用程序 A 的回复,然后单击其他应用程序给出的“编辑标签”操作。这个应用程序 B 做了什么,它实际上检索了来自应用程序 A 的上一条消息中提到的用户的标签,并且在对该线程的另一个回复中,它提供了一些控件来删除现有标签或显示带有自动完成功能的选择以添加新标签.
B 应用程序需要检索 A 应用程序之前提到的用户 ID。所以我需要某种方式直接在 slack 消息中传递该数据。查看示例时, slack 似乎没有提供向消息添加任意“元数据”的方法 , 我错了吗 ? 你有解决方法吗 ?我的意思是我可以完全发送用户 ID 说,在页脚中,所以我可以阅读页脚,但我计划将页脚用于其他用途......有没有办法通过将隐藏的属性传递元数据给最终用户?
虽然这感觉无关紧要,但我正在使用 node slack sdk 构建一个松弛的 nodeJS 应用程序(尤其是 @slack/interactive-messages
包)
最佳答案
在大多数情况下,Slack API 不提供任何官方方法来将自定义数据/元数据附加到消息。但是通过一些简单的“黑客”,它仍然是可能的。方法如下:
方法
基本方法是使用消息的现有字段作为数据的容器。显然,您想选择一个与 Slack 功能没有直接关联的字段。
某些字段并不总是需要的,因此您可以将该字段用作数据容器。或者,如果需要,您可以在数据容器中包含该字段的功能值以及您的自定义数据。
例如 message buttons您可以使用 value
按钮的字段,并以原始功能中不需要的方式构建代码。通常它足以知道用户客户端的哪个按钮(通过 name
字段),所以 value
字段可免费用于您的自定义数据。或者,您可以在该字段中包含按钮的功能值以及数据容器(例如 JSON 字符串)中的自定义数据。
序列化
所有消息都通过 HTTP 传输,并且大多以 JSON 格式编码为 UTF-8。所以你想相应地序列化/反序列化你的数据,特别是如果它的二进制数据。如果可能,我建议使用 JSON。
长度
大多数字段的最大允许长度记录在官方 Slack API 文档中。例如为 value
消息按钮字段最多可以包含 2.000 characters .请记住,您需要考虑序列化后数据的长度。例如如果您将二进制数据转换为 Base64 以便它可以通过 HTTP 传输,您最终会得到大约 1.33 characters for every byte .
内容
一般来说,我会建议您的数据容器尽可能小,并且不包含实际数据,而只包含 ID。下面是两种常用的方法:
state
的官方字段.最多 3.000 个字符。
value
.最多 2.000 个字符。也可以使用
name
字段,但我建议不要这样做,因为该字段的最大允许长度没有记录。
value
选项的字段或
name
菜单操作的字段。
value
field 是更好的方法,因为您记录的最大长度为 2.000,它为您提供了更大的灵活性。但是,您需要将自定义数据与每个选项的实际功能值结合起来。此外,这不适用于
dynamic select elements (如用户),您无法控制值字段。
name
时字段注释,请记住最大允许长度
name
未记录在案,因此您希望数据尽可能短。此外,如果您想在每个附件中使用多个菜单,您需要将菜单的实际名称包含在您的数据容器中。
fallback
字段,但前提是您 100% 确定您的应用程序从未在无法显示附件的客户端上使用。否则您的数据将显示给用户。
关于slack - 将元数据/自定义数据附加到通过 API 发送的 slack 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53951839/
我刚刚创建了一个新的 Slack 应用程序并向其中添加了一个机器人。 现在我有 2 个可用的 token : OAuth 访问 token (xoxp) 机器人用户 OAuth 访问 token (x
我正在构建与 Slack 和客户端的消息传递集成。我需要在用户登录客户端时在相应的对话上显示徽章,以向客户端显示它有多少条未读消息。 我知道 channels.history 方法有 unreads
我有一个 slack POST api 调用,我正在从我的应用程序中调用它:- slack_client.api_call("chat.postMessage", channel=channel, t
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
Slack 默认头像来自哪里?这是他们自己的服务还是第三方服务? 在任何一种情况下,其他人是否有可能使用头像创建服务/系统,例如通过 slack API? 最佳答案 我 asked Slack dir
我正在编写一个脚本,以我的身份发布自动消息。我很难找到我的用户 token 。我必须创建一个应用程序吗? 最佳答案 是的,您必须创建一个应用程序才能生成用户 token 。您可以从此处创建一个应用程序
我正在为一些自动通知创建一个 slackbot,并且我收到了一个请求,让通知占据整个 slack 窗口的宽度,这看起来更干净。我发现 block 似乎占据了一个指定的宽度,并且不会水平延伸超过该点。我
我想创建一个 Slack 命令 /command do-something-with-that-file,同时用户上传文件。 到目前为止,我的命令已收到,但负载中没有文件。这可能吗? 我还在作用域中添
我一直在使用 Slack 操作 API,但不知道如何使用 response_url 在原始消息的线程中发送回复。 chat.postMessage 选项实际上不起作用,因为它需要手动将机器人添加到 c
“Slack”可以将链接展开为视频,但有些服务可以,有些则不能。 Vimeo( https://vimeo.com/ ) 可以在 Slack 中将链接展开为视频。 TED( https://www.t
我想复制一个现有的 Slack 应用程序,只更改一些小的配置。 除了从头开始创建新的 slack 应用程序并重新配置它之外,还有更简单的方法吗? 最佳答案 或者,您可以使用App Manifest 功
On slack - 我可以使用以下文本语法直接从我的两者中标记用户: hello Francois 我想对群组执行同样的操作(不幸的是,我的应用程序只知道群组名称,不知道群组 ID)。是否有这样做
我们使用通信工具 Slack。它在我的左侧边栏中显示了我最近与之进行过直接消息对话的在线和离开用户。我想在列表中看到当前在线的每个人,我们 Slack 服务器上的所有在线用户。在聊天应用程序的侧边栏中
我正在尝试构建一个在首次安装到工作区时执行某些操作的应用程序,例如:Ping 每个团队成员。 我找不到在应用安装时触发的事件类型: https://api.slack.com/events 有什么办法
我有一个发送长消息的机器人。 当它发送多条消息时,用户图标通常会滚出屏幕,因为没有人在机器人的消息之间发送过消息。 这意味着发送消息的时间和发送者不太明显。 有没有办法强制 Slack 为每条消息显示
我不完全确定这是否适合 Stack Overflow... 只是一个简短的问题,希望很多人会觉得有用。 我看到您可以使用主题标签,但它们必须与现有 channel 相对应。我有一个与一个项目相关的 c
例如,我希望在我休息的日子里每天在特定 channel 中显示提醒。就像是: /remind #channel @me will be on PTO 1/1/2016 until 1/5/2016 然
我被一位同事添加到 Slack 工作区。我一定已经接受了移动应用程序上的某些内容,因为我可以访问那里的工作区。不知何故,桌面应用程序从未反射(reflect)过这种变化,也没有表现出知道工作空间的迹象
我是 Slack 的新手,刚刚创建了我的第一个 channel 。在设置 channel 时,我添加了一个目的,但是一旦创建,还有一个添加主题的地方。 channel 的目的和主题有什么区别?它们看起
线程将是 Slack 的一个非常好的特性,只是它们太窄了,我找不到任何方法来配置它们的宽度。 有谁知道如何扩展线程以使其占用所有屏幕空间(在 Slack 内)?放大不会改变窄度。它只会使字体更大。我想
我是一名优秀的程序员,十分优秀!