问题标签 [slack-commands]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
slack - 如何在他们所在的所有团队中唯一地识别 Slack 用户
我知道 slack 用户的用户 ID 不是全球唯一的,但它可以与他们的团队 ID 结合起来成为全球唯一的。但是,我希望能够在他们所在的所有团队中识别人员。是通过存储他们所有的团队 ID 来实现这一目标的唯一方法,还是有一种方法可以获得一个可以在我的应用程序中唯一识别用户的 ID?
我已经看到了一些关于使用 Slack 登录来获取身份令牌的信息。这个令牌是否可以在他们所在的所有团队中识别单个用户?
node.js - 带有 node-slack-sdk 的 slack 斜杠命令
我第一次面对 Slack API。
我正在尝试实现斜杠命令;我找到了这个教程:
https://github.com/slackapi/template-slash-command-and-dialogs
但它似乎没有使用松弛 node-slack-sdk。一个小时后,我无法在 SDK 中找到有关斜杠命令的任何内容。
我错过了什么或者实际上 Slack SDK 不提供斜杠命令 SDK?
顺便说一句,我能够成功配置斜杠命令,我只想知道是否可以使用slack node-slack-sdk来保持代码的一致性。
slack - 松弛块用户-选择由组用户或静态ID的下拉限制选项
我在 block-kit 中使用 slack users-select并希望将我的用户列表限制在下拉选项中(当前显示工作区中的所有用户),并使用给定的 id 或当前组中的特定用户:
或者
(仅限于现有组中的用户)
然后仅向这些用户显示选定的菜单,目前我的代码如下所示:
我可以static-user-select
自己使用和添加名称,但这不会让我拥有“用户状态”(“在线”/“离线”),有时用户可能会动态增加/减少,找不到任何 k/v 或更多信息在文档上,我的方法应该是什么?谢谢!
http-post - 使用 slack 的斜杠命令发出 POST 请求
我正在寻求有关如何使用斜杠命令激活我的 slack 机器人并将 POST 请求发送到带有参数的第三方服务并返回结果的一些帮助。
基本上,我希望我的机器人执行以下操作:
- 用户在命令 /bot [data] 中输入
- 应用程序向包含该数据的网站发送传出 POST 请求
- 返回结果。
需要注意的几点:我不拥有该第三方网站/服务。我只是在寻找一种方法将其集成到我的松弛频道中以使事情变得更快。我尝试只使用邮递员并将正确的 POST 请求发送到我需要的服务器,它会返回结果。我只想拥有与 slack 中的命令相同的概念。
我查看了带有事件的 slack API,但似乎我需要拥有该站点,因为 slack 发送一条“挑战”消息来验证它并要求返回相同的消息。
有没有办法可以使用 Slack 的机器人系统来实现这一点,或者是否有其他平台可以使用?
如果过去有人问过我的问题或更微笑的问题,我深表歉意。我找不到太多关于它的信息。
我感谢所有的帮助!
slack - 如何从对话菜单中获取松弛频道的名称?
我添加了一个松弛对话下拉列表,并在响应中我想保存/显示频道名称(或对话名称)。我可以通过conversation.info API 获取公共频道信息,但对于私人频道,我无法获取任何详细信息。有人可以帮助我如何获取名称以及频道 ID(或对话 ID)。
这是选择频道时松弛的回应
{'values': {'channel_block': {'selected_action_id': {'type': 'conversations_select', 'selected_conversation': 'G0*****JM'}}}}
slack - 从斜杠命令获取 Slack trigger_id
我希望根据用户执行基本斜杠命令在 Slack 中打开一个对话框。我目前可以从我的 API 中的斜杠命令捕获有效负载,并相应地执行此操作,但我的理解是,为了打开一个对话框,我需要一个对应的trigger_id
,它似乎不存在于有效负载中。
我拥有的唯一值是:token
、channel_name
、user_name
和。command
text
我可能会误解这一点,但我所阅读的所有内容似乎都表明我应该将trigger_id
其作为传入有效负载的一部分。这个对吗?
我确实在我的应用程序中打开了交互性,但在其中看不到任何将其链接到斜杠命令的内容。这是他们分开的正确假设吗?还是它们以某种方式联系在一起?
有人可以帮忙吗?
chatbot - 在没有邀请的情况下作为 Slack 机器人写入直接消息
我在 Slack 上有一个与 Bot 用户合作的应用程序。
我已经实现了以下使用模式,并且它与频道完美配合。但是,它在直接消息中不起作用。
- 用户使用我的斜杠命令 (/mycommand)
- 我返回一条带有要发送的文本预览的短暂消息,实际上是“随机词”
- 用户可以取消/随机播放/或发送。(取消删除临时消息。这在频道和 DM 中有效。Shuffle 就地更新临时消息。这也有效。发送将删除临时消息和 chat.postMessage 作为 Bot。这在频道中有效,但不适用于DMs。预览消失了,没有任何东西可以代替它。)
因为该操作以斜杠命令开始,所以我希望将用户意图保留为临时身份验证。我认为短暂的消息会删除此上下文,并阻止我在邀请 Bot 用户的情况下直接写信给 DM。将机器人添加到频道,将其变成多用户直接消息确实有效。然而,这是一个糟糕的用户体验,因为人类只是为了让机器人说话而丢失了他们的对话历史。
实现我想要的行为的应用程序的一个示例是 GIF 键盘。(只是随机发现,实际上与我的应用程序并不相似。)https://realtalk-headquarters.slack.com/apps/A0FLZ2GVB-gif-keyboard(它们的范围:命令,机器人,聊天:写入:机器人,用户:读取,用户:read.email)
似乎秘诀在于“机器人”范围仅适用于经典令牌(我认为我再也无法获得了。)
一些应用程序似乎通过用户令牌来处理此问题,因此它们可以改为以用户身份发布。理想情况下,我不想这样做。我可以邀请机器人加入直接消息,然后一切正常。这不是很好,因为我们开始了一条全新的消息,只针对 Bot,并且丢失了所有对话历史记录。
这可能吗?似乎经典机器人能够以新机器人无法提供的方式支持更好的用户体验。
谢谢!
amazon-s3 - 如何将 Slack App 安装商店从本地机器移动到 Amazon S3
Slack 应用程序部署在不同的 pod 上触发,之后在 slack 应用程序中,我收到此错误auth.test API 调用结果意外无,我需要再次安装 slack 应用程序。
这是示例代码
slack - Slack 命令请求正文模式可以保持不变吗?
我需要在 Salesforce Apex 语言中验证松弛请求,因此需要请求正文。在我的顶点休息端点中,我无法获取 raw requestBody
,因为它requestBody
被设置为参数然后被清除(似乎是一个顶点错误)。作为解决方法,我将 Slack 命令发送到节点服务,然后到达requestBody
那里。然后,我通过获取参数并按照我在节点服务中获得的模式在 apex 类中合成原始主体。我想知道模式是否会一直保持这种状态。如果模式发生变化,我的解决方法将不起作用。
这是 slack api 给出的示例:
它不包括我的 slack 应用程序实际发送的所有参数,并且错过了 3 或 4 个。
在调查过程中,我还注意到在 slack 命令发送的请求标头中,Content-Type
是application/x-www-form-urlencoded
. 如果我将其更改为其他内容,我的 Apex 课程可以按预期Content-Type
获得原始数据。requestBody
是否content-type
在application/x-www-form-urlencoded
设计请求标头中?谢谢你。