来自 数据 2022-06-09 17:30 的文章

香港高防ip_高防御和高幸运_零元试用

香港高防ip_高防御和高幸运_零元试用

RoboSlack:一个用于行星级消息传递的Java库,SlackPalantirfollow2017年7月18日·5分钟阅读

RoboSlack是Slack HTTP API的Java库。RoboSlack最初由Palantir的运营团队开发用于内部使用,此后在业务和产品团队中得到广泛采用,现在为从问题分类到系统监控的各种用例提供支持。RoboSlack在Github上可用,我们很高兴看到它的旅程在Palantir之外继续。

简介

RoboSlack是Slack HTTP API实用子集的Java8实现,旨在通过简单流畅的API表达最常见的Slack用例:

WebHookToken=WebHookToken.fromString();MessageRequest message=MessageRequest.builder().text("你好,Slack!")。用户名("roboslack").channel("您的频道").build();ResponseCode response=SlackWebHookService.with(token).sendMessage(message);

在引擎盖下,RoboSlack发出相应的HTTP请求:

POSThttps://hooks.slack.com/services/{"text":"你好,Slack!"用户名":"roboslack","channel:"#你的频道"}

大约一年前,Palantir对类似roboslack的东西的需求变得非常明显。当时,我们的团队正在研究一种方法来自动分类工程师的支持票。我们很快就了解到,一些门票需要一个比JIRA电子邮件更吸引眼球的通知渠道,但比PagerDuty警报更不刺耳。Slack符合这一要求,因为它具有上下文感知的通知模式、个人与通道交互模型以及简单的消息传递保证。我们开始构建RoboSlack的基础,将其仅仅作为我们的支持票triager的一个子模块。然而,在调查即将发布的Webhook API文档并与我们的一些业务开发团队交流想法时,我们意识到,我们可以轻松地提取Slack模块,并将其转换为可重用的Slack库,同时满足我们的需求,并为Palantir的其他软件开发人员建立有用的构建块。因此,RoboSlack诞生了。

用例

RoboSlack支持带有页眉、图像、字段、页脚和所有六边形彩虹颜色的消息。我们发现Robosack代码可读性强,可在不同的项目间重用,这些项目通常将MessageRequest设置作为配方或作为应用程序生态系统中遵循的样式指南的一部分共享。以下是一些可能的RoboSlack应用程序:共享谷歌地图截图和深度链接:

香港高防ip_高防御和高幸运_零元试用

源代码:https://gist.github.com/elektron9/d029c433e4014c7f3fffcd0d882cc20f

向客户发送有关网上商店商品的信息:

香港高防ip_高防御和高幸运_零元试用

源代码:https://gist.github.com/elektron9/d0e7509b34acdbbf01db0b5d224cc440

将Slack用作高优先级事件的记录器:

香港高防ip_高防御和高幸运_零元试用

源代码:https://gist.github.com/elektron9/6b7ce6e6d4000519d12d3c6cb5efb47e

幕后

现在您对如何以及何时使用RoboSlack有了一些想法,让我们仔细看看一些API和实现细节。

AuthenticationRoboSlack使用Slack的传入Webhook API发送消息。使用WebHookToken(通常以https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX 或TXXXXX/BXXXXX/XXXXXXXXX),客户端可以使用SlackWebHookService发送消息。WebHookToken应被视为机密,因为它在发送消息时充当客户端的身份验证令牌和默认提交目标(用户或通道)。由于它使用Webhook API,Robosack目前不支持按钮和其他高级松弛交互等核心API操作。错误传播假设应用程序或客户端使用Robosack发送消息具有网络访问权限,并且能够访问WebHookToken URL(即。https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX),每个MessageRequest都保证由Slack处理,并在发送时发送到相应的通道或用户。返回的响应代码是处理消息时遇到的任何错误代码的可读封装。示例包括:频道已存档、禁止操作、未找到频道和未找到用户。发送的每个MessageRequest要么返回一个ResponseCode,其中包含提交到SlackWebHookService的元数据,要么在SlackWebHookService之外出现问题时抛出RuntimeException。例如,如果存在网络连接问题,您可能会看到:

java.lang.IllegalStateException:无法连接到以下任何服务器:[https://hooks.slack.com/services/]. 请检查URI是否正确,服务器是否可访问。