创建你的第一个 Slack 应用





5.00/5 (3投票s)
了解 Slack API 并设置你的第一个 Slack API 应用程序
注意:这是 CodeProject 的 Slack API 挑战 的入门文章。比赛正式开始于 2019 年 1 月 7 日,结束于 2019 年 3 月 7 日。
引言
你之所以来到这里,是因为你想编写你的第一个 Slack 应用。
也许你热爱 Slack,所以才使用它。或者你并不热爱它,但你使用它,因为它比电子邮件稍微不那么糟糕。
又或者你使用它是因为你的雇主强迫你使用,即使你在一个疯狂的开放式办公空间工作,而当同事需要你注意时,直接扔订书机给你的效率会更高、痛苦更少,而不是通过不断地在 Slack 频道中 @ 你直到你回应,来侵蚀你的理智。
无论你为什么使用 Slack,编写一个为你的 Slack 频道添加自定义功能的应用程序都会非常有趣——甚至可能有利可图!一些开发者已经围绕着让 Slack 在某些方面更有用的应用程序建立了完整的业务。
Slack 应用几乎可以用任何语言编写。你只需要能够发送和接收 HTTP 请求。即使你正在使用一种非常小众的语言,没有任何 Web 框架或 HTTP 库,你也可以让操作系统打开一个原始套接字,然后从那里开始。
所以你的技术栈不会阻止你构建使用 Slack API 的应用。抱歉,PL/I 开发者——如果你的老板让你开发一个 Slack 应用,你可能逃不掉。不过,如果你用 APL 编码并在大型机上部署到裸金属,那么如果你想开发一个可以与 Slack 通信的东西,你可能就没辙了。
无论你使用什么语言或库,都需要采取几个步骤才能让你的应用程序启动并运行。这就是我们将在本文中介绍的内容,但首先,我们将从高层次审视 Slack API 应用是什么,以及它们可以做什么。
什么是 Slack 应用?
广义上讲,Slack API 应用是一种可以读取或写入 Slack 工作区中频道的应用程序。你的应用还可以响应提供有关 Slack 工作区或频道中发生的事情的信息的事件——例如,当用户加入或离开频道时,或者当工作区的域名更改时。
Slack 有三个不同的 API,你最终可能会使用它们来构建应用程序。它们是:
Web API
Slack 的 Web API 是一个 RPC 风格的 HTTP API,它允许你查询 Slack 工作区的信息,并将信息或消息推送到 Slack 工作区。对于简单的应用,Web API 可能就是你所需要的全部。而且,由于你只需要能够发出 HTTP 请求就可以使用它,所以 Web API 几乎适用于所有编程语言。如果你绝对、确定需要用 COBOL 编写 Slack 应用,那么 Web API 可能是你最好的(也是唯一)选择。
实时消息 API
如果你是一个喝着拿铁、玩着 Haskell 的时髦人士,需要使用最新最棒的东西,那么 Slack 的 实时消息 API™ 就是为你准备的!如果你是一个出色的专业应用开发者,想要尽快接收和响应 Slack 频道中的事件,那么它也是一个绝佳的选择。
RTM API 依赖于 WebSockets。因此,虽然它几乎可以从任何语言中使用,但如果你的语言不支持 WebSocket,你就没辙了——尽管如果你想为 Algol-60 编写自己的 WebSocket 库来与 Slack 交互,请这样做,然后写一篇关于它的 CodeProject 文章!
对于大多数应用来说,RTM API 是一个不错的选择,但缺点是你会收到你通过 API 订阅的频道中发布的所有消息和事件。如果你的应用程序监听所有内容,但只关心非常具体的事件,这可能会导致不必要的服务器和带宽账单。如果具体事件才是你感兴趣的,请继续阅读。
事件 API
正如其名称所示,如果你对 Slack 频道中发生的某些类型的事件感兴趣,那么 Slack 的 事件 API 就是你想要使用的。Slack 贴心地提供了 事件列表供你订阅。
如果看起来你感兴趣的所有事件都可以通过事件 API 访问,那么你很可能可以保持简单,避免使用花哨的基于 WebSocket 的解决方案。
如果事件 API 不能满足你的需求,那么请做好准备——你需要一大杯咖啡和 YOLO 的态度,因为你将要从实时消息的“消防水管”中饮水!
如何开始
无论你决定使用哪个 Slack API,都需要遵循几个共同的步骤来启动你的应用程序。
首先,你需要创建一个新的工作区作为沙盒来测试你的应用程序。你可以通过访问 https://slack.com/create 并按照步骤创建新工作区来完成此操作。Slack 会给你发送一封确认邮件,问你几个问题,然后为你创建工作区。创建完成后,你将被自动登录到工作区并加入一个频道。
如果你是管理员,你也可以跳过这一步,直接使用你雇主的 Slack 工作区。根据你雇主有多棒,这样做可能会让你升职,也可能让你被解雇。
现在你已经创建了工作区并登录了,可以创建你的应用程序了。为此,你只需要访问 https://api.slack.com/apps/new。Slack 会要求你给你的应用程序命名。你可以随便起一个像“我的第一个惊人 Slack 应用”这样的名字。别担心!之后你可以更改它。你还会被要求选择一个要创建应用程序的工作区。点击下拉框选择一个——可以是你在上一步创建的测试工作区,或者你登录的任何其他工作区。
当你选择一个工作区时,Slack 会给你一个令人担忧的警告,说如果你离开所选的工作区,你将失去管理应用程序的能力。这是因为所有新的 Slack 应用一开始都只附加到一个工作区。
稍后,你可以让你的应用程序摆脱束缚,让任何 Slack 工作区都可以安装它。要做到这一点,你需要将你的应用程序升级为支持 SSL 和 OAuth。这并不难,但我们稍后才会考虑。
结论
就这样!我们已经了解了三个可用的 Slack API,并创建了我们的第一个 Slack 应用。接下来,我们将编写一些代码,让我们的新应用真正做些事情。我知道看完整篇文章还没有写任何代码可能会有点令人失望。毕竟这是 CodeProject,不是吗?
别担心!我们很快就会编写代码。有时候,了解 API 的基础知识并打下基础,在编写任何代码之前都很重要,而这正是我们在这里所做的。
要继续编写代码,请根据你喜欢的语言选择下一个教程: