Skip to content

ChatRobot

Flaki edited this page Jul 3, 2019 · 1 revision

钉钉robot机器人

轻量级的钉钉文档机器人,支持简单语义分析,部署迅捷,交互方便,组件式编程方便二次开发,集成h2数据库无需自建数据库。实现sql备忘录,图灵chatstearm等组件,如果有疑问可以联系我,如果喜欢的话可以点个⭐。

Table of Contents generated with DocToc

需要环境

  • 需要组织架构支持机器人outgoing模式,如果没有此权限,可以联系你公司的管理员与钉钉小二大柚(钉钉号:w47zhfa)联系添加。
  • JDK 8以上版本 (如果是java9及以上请确保中央仓库)
    前往官方下载:jdk8
  • 如果是JDK 9或以上版本建议使用中心仓库,否则可能某些jar找不到:
HTTP: http://repo1.maven.org/maven2
HTTPS: https://repo1.maven.org/maven2
  • maven 3以上版本
    前往官方下载:maven

部署方式

  1. fork项目,并将start.sh中项目地址改为自己的链接
  2. 授权start.sh执行权限
  3. 确定lsof已经安装
  4. 执行脚本
~ sudo cd robot & chmod 755 start.sh & ./start.sh
  1. 登陆h2网页管理,默认地址:host:10924/h2,将TEMPLE表TEMPLE字段修改为你期望的大小限制,具体执行sql请自行编写。
  2. 已经集成图灵聊天机器人api,如果需要请在application.properties配置robot.tuling.apikey属性,官方链接:图灵机器人

添加机器人方式

1.在客户端钉钉群中点击群设置,点击群机器人

2.点击添加机器人配置

3.点击添加自定义机器人

4.勾选outgoing,写入post地址(如http://xxx.com:10900)

基本指令

定义

  • [*arg|...] arg代表参数,*代表参数必要性(*必要,不带不必要)
  • 处理指令转义可以用转义字符,如空格='\32',或者用全文本标记(""" """)如空格='""" """'
  • 调用方法: @机器人 指令 arg:::value ... @someone

表达式

  • 支持|和&两种运算符,分别代表或和与
  • 可用()分组逻辑表示
  • 带*字符串代表全匹配命中,不带则代表包含命中

示例

el=(我&爱&祖国)|*爱我中华,表示: 全匹配'爱我中华'或者包含'我','爱','祖国'时可以命中。

权限指令

第一次配置master权限

需要在数据库里power_entity添加,userId为钉钉userId,powerId为权限id。
或者第一次使用命令与机器人聊天的用户也可以自动成为MASTER。

@AllArgsConstructor
@Getter
public static enum Power {
    MASTER(0,"MASTER"),
    ADMIN(1,"ADMIN"),
    USER(2,"USER");
    }

授权指令

  • 原则,高授低
  • 指令:@机器人 授权 *[power|...] @被授权人

示例:

模板帮助指令

  • 指令:@机器人 模板帮助 []

示例:

指令帮助指令

  • 指令:@机器人 指令帮助 []

示例:

机器人指令

  • 指令:@机器人 机器人指令 []

示例:

增加TEXT模板 (简单模板)

  • 指令:@机器人 增加TEXT模板 [*temple | *el]

示例:

增加MARKDOWN模板 (高级模板)

  • 指令:@机器人 增加MARKDOWN模板 [*temple | *el | *title]

示例:

增加LINK模板 (高级模板)

  • 指令:@机器人 增加LINK模板 [*temple | *el | *title | *messageUrl | *picUrl]

增加SQL (内置的建议sql备忘录)

  • 指令:@机器人 增加SQL [*sql | *title]

模板列表

  • 指令:@机器人 模板列表 [id | ids]

删除模板

  • 指令:@机器人 删除模板 [*id]

编写一个目录式文档

钉钉自定义协议

editing

目录式推荐模板

editing

编写一个投票机器人

editing

编写一个分页查询器

editing

编写一个加班餐机器人

editing

编写一个成语接龙游戏机器人

editing

使用sql备忘录

editing

联系我