slack 聊天机器人

利用Slack的强大功能,您可以做很多很酷的事情-专用频道,嵌入各种内容,从一个位置搜索所有消息,共享文件和代码,使用许多可用的集成中的一些或自己构建。 在这篇文章中,我将重点介绍最后一篇。 我最近已经完成了这样的实现。 我的项目是创建一个简单的Slack机器人来为我的队友安排桌上足球游戏,名为Foosie。 这是我开源的Spring Boot应用程序,可在GitHub上找到 。 在本文中,我将分享这个小项目的一些值得注意的方面,并希望诱使您自己尝试一下。

从哪儿开始

与任何项目一样,从基础开始很重要。 明确您所开发产品的目的和预期用途应该是整个过程围绕的中心点。 请记住,您正在为用户创建界面,从而使您更容易访问实现的功能。

设计注意事项

根据机器人的通信方式,您应该考虑是什么驱动了交互(如果有)。 如果您要集成正在使用的某些工具并希望发送某些操作的某些统计信息或结果,则可能只是需要向您选择的渠道发送一条简单消息。 这些应用程序本质上通常是无状态的,这使实现变得更加简单。 您甚至可以更进一步,并使用该代码自定义统计信息。 生成图形或数据的漂亮表示形式,以跟踪随时间的变化。

但是,如果您的应用程序是由用户输入驱动的,或者需要多个用户进行协作(就像我的一样),则需要考虑Slack提供的工具来简化此过程。 在这种情况下, 斜杠命令似乎是一种解决方法。 斜杠命令易于使用,通常绑定到URL,使您可以将GETPOST消息发送到后端系统。 由于可能已经使用了许多斜杠命令,因此您可以考虑在斜杠命令集前面加上前缀,以使用户更容易找到和使用它们。

实施注意事项

鉴于Slack的体系结构及其设计方式,我们的开发人员在选择语言和框架时会获得极大的自由度。 整个通信都是利用REST原理通过HTTPS进行的,从而使您几乎可以以任何方式与Slack通信(假设它支持HTTP调用)。 与Slack本身进行通信时,有几种方法可以使用,它们在官方文档中都有很好的描述:

  • 网络挂钩

    • 传入的Webhooks
  • 斜杠命令
  • 实时消息API

关于Slack及其文档的伟大之处在于,它们允许您从文档页面本身使用这些集成方式,以便您可以在团队或渠道中查看结果。 一旦开始实施bot,这应该给您一个很好的主意。 Webhooks是这三个中最简单的,它允许您的后端对用户的某些操作做出React。 无论是连续交付管道发布的链接,还是启动构建的查询,Webhooks都是简化此功能的简单方法。 如果您需要更多详细信息,那么可能值得研究Slash命令。 它们允许进行更高级的通信,而不会强迫您实施更强大的解决方案。 这些选项中的最后一个是功能完善的消息传递API,它公开了过多的Slacks API,并提供了可用于实现其机器人的所有受支持的方法(包括与通道,用户,组,团队,文件和私人消息相关的操作)。

在安全性方面,有多种机制可以帮助您保护机器人和与Slack的通信。 通信通过HTTPS协议进行。 您既可以使用目前所有主要框架都支持的OAuth 2.0,也可以保持简单并在代码中添加基于令牌的简单检查。 在消息数量,消息发布频率以及超时方面存在一些限制,这些超时限制了您频道内容的完整性。 安全级别应与您的预期用途以及通过电线传输的数据的敏感性相匹配。

测试注意事项

机器人开发最具挑战性的方面之一是对其功能的测试(至少对于我正在研究的机器人而言)。 好消息是,由于我们仅处理REST API调用,因此您可以充分利用模拟的潜力。 我决定在我的项目中使用模拟服务器库,因为我在以前的项目中对该库具有丰富的经验。 在必须服务大量用户或需要考虑并发性的情况下,构建至少一个半健壮的测试基础结构非常有用。 我强烈建议您不要小看这一步,因为这实际上是确保机器人质量和行为的唯一可行方法。

文件说明

与打算供您以外的其他人使用的任何软件一样,文档非常重要。 理想情况下,文档应包含足够的信息,以使您的用户能够使用您的机器人。 这包括典型的用例,以及如何通过与机器人交互时可能看到的示例响应来触发它们。 但这不应该到此为止。 如果使用的是斜线命令,则还应记录如何设置,描述它们并揭示预期的用途。 由于还需要管理后端服务,因此您不应该回避描述如何站立这些服务及其正确配置。 在我的机器人上工作时,我尝试遵守这些规则,您可以在Foosie的自述文件中看到一个示例。 我知道,无耻的插头……对吗?

结论

尝试将您的第一个bot放在一起并查看其工作原理(不管它执行的操作的复杂性如何)是一项很棒的练习。 无论您是要在团队频道中发布随机的Nicolas Cage表达式,还是要推出将您的性能监控解决方案和Slack桥接在一起的机器人,这都是一个有趣的项目。 我故意不包括任何特定的代码或Slacks API的用法,因为您可以在其正式文档页面上找到足够的资源。 如果您对这种实现的外观感到好奇,请随时使用Spring Boot托管桌上足球游戏来检查(或为我的项目Foosie做出贡献)。 编写第一个Slack机器人并不是一件容易的事,但是它比我预期的要容易。 也很有趣。

翻译自: https://www.javacodegeeks.com/2016/06/building-slack-bot.html

slack 聊天机器人

slack 聊天机器人_构建自己的Slack机器人相关推荐

  1. 用python写聊天机器人_用Python 写一个机器人陪你聊天(文尾有彩蛋)

    工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...

  2. 草履虫纳米机器人_草履虫大小的微型机器人:由激光驱动,未来可用于显微外科手术!...

    江苏激光联盟导读: 据悉,<Nature>报道了美国康奈尔大学的最新研究成果,该校研究人员领导开发出 首个含半导体元件的微型机器人.该机器人的尺寸与草履虫相仿,可用激光控制其腿部行走. ▲ ...

  3. 第十代晨风机器人_第十代QQ机器人下载_第十代QQ机器人 v20180102 官方版 - 西西下载...

    官方介绍: 第十代QQ机器人是对QQ进行功能扩展的程序,在第十代机器人软件登录QQ号码后可以按照预先设定的一些指令自动完成某些任务,例如与好友进行交流,执行一些数据交互任务,实现QQ与网站的交互,常用 ...

  4. mc有什么红石机器人_我的世界红石机器人怎么做_我的世界红石机器人制作教程...

    我的世界是一款风靡全球的高自由度沙盒游戏,很多玩家都认为在游戏中做一个会动的机器人是一件很有趣的事情,然而还有很多小伙伴不清楚怎么搭建机器人,那么我的世界红石机器人怎么做?下面小编就把我的世界红石机器 ...

  5. 正定小主人机器人_石家庄正定县2015中小学生机器人运动大赛隆重开幕

    原标题:石家庄正定县2015中小学生机器人运动大赛隆重开幕 河北新闻网讯(燕赵都市报记者刘杰 通讯员魏志军)近日,石家庄正定县2015年中小学生机器人运动大赛在正定一中隆重开幕.来自全县中小学28支代 ...

  6. ironbot智能编程机器人_视频 | 多模式编程机器人,“程序猿”培养从小抓起

    原标题:视频 | 多模式编程机器人,"程序猿"培养从小抓起 一谈到机器人,男孩子的心中必定莫名的兴奋,已经三十好几的我,谈到机器人依然兴奋不已.男孩子的心中对于机器总有一丝莫名的冲 ...

  7. 光伏电站清扫机器人_轻型光伏电站清扫机器人的制作方法

    本实用新型涉及一种清扫机器人,尤其涉及一种轻型光伏电站清扫机器人. 背景技术: 众所周知,现有光伏电站的清扫机器人逐渐增多,但清扫机器人重量都偏重,一般都在65KG以上,有的甚至能达到80KG:这样的 ...

  8. delphi 企业微信消息机器人_企业微信—群聊机器人

    在企业微信群聊机器人接口对接天气API使用过程中,遇到 过一个问题,就是对于嵌套json数据如何进行嵌套的| 一:"msgtype": "text", curl ...

  9. 萨默尔机器人_助力产业发展 西安市人工智能机器人学会正式成立

    8月23日,西安市人工智能机器人学会在西咸新区沣东新城协同创新港正式成立.西安报业全媒体记者 冯炜 摄 8月23日,西安市人工智能机器人学会正式成立.学会将通过市场化机制.社会化服务等方式,整合科技创 ...

最新文章

  1. 深度学习的算法实践和演进
  2. python3线程中的锁机制
  3. php oracle count,调用Count列php mysql
  4. elasticsearch best_fields most_fields cross_fields从内在实现看区别——本质就是前两者是以field为中心,后者是词条为中心...
  5. 关于MSSQL存储过程中使用游标的一个小例子(学习)
  6. python如何使用session和cookie_Python爬虫番外篇之Cookie和Session-阿里云开发者社区
  7. C#_自动化测试 (四) 自动卸载软件
  8. 笔试题 - 阶乘问题
  9. ASP.NET(c#)如何判断浏览器是否支持cookies
  10. Oracle数据库块的物理损坏与逻辑损坏
  11. 三方集成 - 友盟分享总结
  12. 增值税计算机模拟纳税申报,增值税纳税申报系统中的CBR方法实现
  13. python字符画绘制代码_python图片转字符画代码是什么
  14. 最齐的Typora使用教程
  15. 第二章 工具变量法(IV)与两阶段最小二乘法
  16. java 开源论坛框架/java web 论坛框架
  17. 【Codeforces】2015-2016 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2015) A Adjoin the Netwo
  18. 鸡为什么感染呼吸疾病 预防鸡流鼻涕打喷嚏的药
  19. codewars day1
  20. python-非零整数代表True

热门文章

  1. 【Unity3D】立方体纹理(Cubemap)和天空盒子(Skybox)
  2. BFC是什么?如何触发?BFC解决了什么问题?
  3. INF中的服务安装段落无效 解决
  4. 展锐平台如何从modem log 中查看终端支持的GEA算法能力
  5. web安全体系建设需要注意的事项
  6. C# ProgressBar 进度条控件
  7. mac访问pd虚拟机上服务器,Mac如何访问pd虚拟机文件夹 Mac访问pd虚拟机文件夹图文教程...
  8. 三星急了,在中端机市场上下重本,但并不足够
  9. C# asp.net的定时发送
  10. 计算机在交通规划中的应用,浅谈计算机在交通运输行业中的应用