当前位置: 首页 > news >正文

Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息

一个工程师团队使用 Slack 进行团队协作比 QQ / 微信流的效率高多啦。除了基本的 IM 之外,它的扩展性也是非常重要的一点。

本文介绍 Slack 的开发入门:Incoming Webhooks 篇。


本文内容

      • 创建一个新 Slack 应用
      • 创建 Webhooks 应用
      • 添加一个 Webhook Url
      • 模拟发送一个消息
      • 你可以用这个来做什么?
        • 参考资料

创建一个新 Slack 应用

如果你已经创建了一个 Slack 应用,可以跳过这一节。

在这里 https://api.slack.com/apps/new 创建一个新的 Slack 应用:

填写新应用信息

填写完两个信息之后,你就可以选择五种不同的应用类型:

  • Incoming Webhooks
    • Post messages from external sources into Slack.
    • 将外部的资源作为一个消息发送到 Slack 中。
  • Interactive Components
    • Add buttons to your app’s messages, and create an interactive experience for users.
    • 为 Slack 中消息添加一个按钮,以便让你的应用与用户之间可以有交互。
  • Slash Commands
    • Allow users to perform app actions by typing commands in Slack.
    • 允许用户在 Slack 中敲入命令来控制应用的行为。
  • Event Subscriptions
    • Make it easy for your app to respond to activity in Slack.
    • 允许你的应用响应 Slack 中的一些活动。
  • Bots
    • Add a bot to allow users to exchange messages with your app.
    • 开发一个机器人,与 Slack 中的其他人进行交流。
  • Permissions
    • Configure permissions to allow your app to interact with the Slack API.
    • 管理你的应用与 Slack API 之间的权限。

五种不同的应用类型

创建 Webhooks 应用

本文,我们选中 Incoming Webhooks。

或者如果这已经是你创建好的应用了,可以左边的列表中选择 Incoming Webhooks。

然后按一下右上角的激活按钮,使得 Incoming Webhooks 功能激活。

激活

如果顶部有提示因为权限问题需要重新安装,那么就点进去重新安装。

提示重新安装

添加一个 Webhook Url

继续把网页往下滑,点击 [Add New Webhook to Workspace]。

添加一个 Webhook Url

然后选择需要发消息的 Channel:

添加一个可以发消息的 Channel

这时,页面还会继续回到添加 Url 的地方,但示例 Demo 已经换上了真实的 Url,而且你可以复制到剪贴板。

可以复制的新 Url

模拟发送一个消息

为了迅速验证,我们可以使用 Postman 来发送这条消息。

关于下载和使用 Postman,你可以参考我的另一篇博客:使用 Postman 调试 ASP.NET Core 开发的 API。

填写要 POST 的 Url,然后在消息的 Body 中填写 JSON 格式的消息内容:

{
  "text": "Hi! 给你个 **任务** 玩玩。"
}

使用 Postman

这时,点击 Send 按钮,消息发送成功。

于是我的 Slack 通道中收到了一条来自这个应用发来消息:

看看新发送的消息

你可以用这个来做什么?

当你可以随时向 Slack 的某个通道发送消息之后,你可以用来做什么呢?

你可以定时发送团队的代码审查发送发现的问题,可以发送自动化编译失败的信息,可以发送每周的任务计划和总结,等等。

当然,Slack 上本身就提供了大量的应用可以直接下载安装,自己做开发是解决更定制化的需求。


参考资料

  • Enabling interactions with bots - Slack

我的博客会首发于 https://walterlv.com/,而 CSDN 和博客园仅从其中摘选发布,而且一旦发布了就不再更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://blog.csdn.net/wpwalter),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 三值 bool? 进行与或运算后的结果
  • 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具?
  • 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • C# 中委托实例的命名规则
  • 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径
  • 让 MSBuild Target 支持 Clean
  • C#/.NET 如何确认一个路径是否是合法的文件路径
  • 不使用 U 盘等任何工具全新安装 Windows 操作系统
  • C# 永远不会返回的方法真的不会返回
  • CentOS 的终端中如何搜索文件
  • 如何在命令行中监听用户输入文本的改变?
  • 使用 Xamarin 开发 iOS 键盘扩展(含网络访问)
  • 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • SegmentFault for Android 3.0 发布
  • avalon2.2的VM生成过程
  • CODING 缺陷管理功能正式开始公测
  • JavaScript实现分页效果
  • js
  • Laravel 菜鸟晋级之路
  • 大快搜索数据爬虫技术实例安装教学篇
  • 后端_MYSQL
  • 码农张的Bug人生 - 初来乍到
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 手机端车牌号码键盘的vue组件
  • 因为阿里,他们成了“杭漂”
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #100天计划# 2013年9月29日
  • #Linux(帮助手册)
  • %check_box% in rails :coditions={:has_many , :through}
  • (Python第六天)文件处理
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (九十四)函数和二维数组
  • (六)c52学习之旅-独立按键
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (五)Python 垃圾回收机制
  • (转) Face-Resources
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET 常见的偏门问题
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .Net环境下的缓存技术介绍
  • .NET命名规范和开发约定
  • @Bean有哪些属性
  • @media screen 针对不同移动设备
  • @Query中countQuery的介绍
  • [ JavaScript ] JSON方法
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例