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

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


创建一个新 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]。

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

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

模拟发送一个消息

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

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

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

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

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

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

你可以用这个来做什么?

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

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

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


参考资料


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

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

Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息的更多相关文章

  1. openresty 前端开发入门五之Mysql篇

    openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...

  2. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

  3. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

  4. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

  5. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  6. VR原理讲解及开发入门

    本文是作者obuil根据多年心得专门为想要入门的VR开发者所写,由52VR网站提供支持.   1. VR沉浸感和交互作用产生的原理:   在之前,我们观看一个虚拟的创造内容是通过平面显示器的,52VR ...

  7. Eclipse_luna_J2EE_For_JS+tomcat8.0环境搭建、配置、开发入门

    一.所有需要的软件.插件等下载地址 J2SE的官方下载路径:http://www.oracle.com/technetwork/java/javase/downloads/index.html Ecl ...

  8. OWIN的理解和实践(三) –Middleware开发入门

    上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介绍下Middleware的开发 ...

  9. [Cordova] Plugin开发入门

    [Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...

随机推荐

  1. 【Mac】小技巧:实现ssh服务器别名免密登录

    前言 我们平常使用ssh user@host然后输入密码的方式来远程链接一个服务器,但是,如果要管理的服务器太多,记住这些服务器的IP和用户名.密码就是一个复杂的工作.当然,我们可以把这些信息用文档记 ...

  2. Codeforces 735B - Urbanization

    735B - Urbanization 思路:贪心.人数少的城市住钱最多的那几个人. 不证明了,举个例子吧:a1<a2<a3<a4<a5 (a1+a2+a3)/3+(a4+a5 ...

  3. Python的url解析库--urlparse

    一.urlparse解析url的query并构建字典 下面的方法主要的功能: 解析url的各个部分,并能够获取url的query部分,并把query部分构建成dict. 具体的代码实现: >&g ...

  4. codeforces 578c//Weakness and Poorness// Codeforces Round #320 (Div. 1)

    题意:一个数组arr,一个数字x,要使arr-x的最大子段最小,问该最小值. 三分x,复杂度logn,内层是最大子段的模板,只能用n复杂度的.因为是绝对值最大,正负各求一次,取大的.精度卡得不得了,要 ...

  5. Android Studio 常用快捷键和使用技巧

    Android Studio 1.Ctrl+E,可以显示最近编辑的文件列表 2.Shift+Click可以关闭文件 3.Ctrl+[或]可以跳到大括号的开头结尾 4.Ctrl+Shift+Backsp ...

  6. zk如何实现watch

    在客户端发送命令:stat /zhang watch 在zk server中产生如下图的调用栈: //在DataTree类中有 private final WatchManager dataWatch ...

  7. ZOJ 3822 Domination 概率dp 难度:0

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  8. bzoj1677

    题解: 背包 每一个1<<i都是无限量 代码: #include<bits/stdc++.h> using namespace std; ,M=1e9; int n,dp[N] ...

  9. C# 自动发送邮件被系统当做垃圾邮件退回的处理方法

    前两天做了一个发送邮件的定时任务.其功能为在每天的某一时刻,系统自动从银行查询前一天的交易明细到本地服务器,解析后生成为各自不同Excel文件,并打包成zip压缩文件,然后抄送附件给财务对账.其中,邮 ...

  10. slice,Array.prototype.slice,Array.protyotype.slice.call

    slice 特点:基于当前数组中的一或多个项创建一个新数组.[原数组不会被修改] 返回结果:返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象. 语法: arr.slice() ...