一种基于即时通讯工具自建应用的机器人的制作方法

文档序号:27682628发布日期:2021-12-01 00:15阅读:114来源:国知局
一种基于即时通讯工具自建应用的机器人的制作方法

1.本发明属于计算机技术领域,具体涉及一种基于即时通讯工具自建应用的机器人。


背景技术:

2.钉钉、企业微信、飞书等等国内比较流行的企业办公即时通讯工具,都包含了企业自建应用的功能。企业自建应用的目的是将企业自己实现的网站/后台通过互联网与这些即时通讯工具相结合,使得企业内员工和企业相关的外部人员可以直接在即时通讯工具内使用企业的网站/后台功能,并由网站/后台得到反馈返回到即时通讯工具。
3.目前企业自建应用的使用流程包括以下步骤:用户在包含企业自建应用的聊天群内与企业自建应用聊天,企业自建应用将聊天内容发送到企业的网站/后台,网站/后台解释聊天内容并处理,将处理结果返回给企业自建应用,企业自建应用将处理结果返回到聊天群内供用户确认结果。
4.例如员工小明想要知道目前游戏服后台有多少个用户在线,于是他在飞书的公司群里输入"@游戏服后台online",其中,游戏服后台是基于飞书实现的企业自建应用,在群里以应用的方式存在,接收和处理用户的消息。游戏服后台将聊天内容"online"转发到游戏服后台网站上,游戏服后台网站解释"online"并返回"1032users online",游戏服后台将"1032users online"显示在聊天群供员工小明确认结果。这样极大加快了工作流程,增强了办公效率。
5.但一般成熟的互联网/it行业的企业都包含很多网站/后台,如果需要通过企业自建应用接入即时通讯工具,则需要针对这些每一个网站/后台都开发一个企业自建应用。特别对于一些外部联系比较复杂的企业而言,这些企业需要同时钉钉、企业微信、飞书以满足不同的外部企业人员的实际需求。例如企业包含了10个网站/后台,同时使用了3个即时通讯工具(钉钉、企业微信、飞书),则需要开发3*10=30个企业自建应用来满足公司/外部人员的使用需要,这无疑极大增加了企业自建应用的开发/适配/维护的工作量。


技术实现要素:

6.针对现有技术中的缺陷,本发明提供一种基于即时通讯工具自建应用的机器人,减少了企业自建应用的开发/适配/维护的工作量。
7.一种基于即时通讯工具自建应用的机器人,包括:
8.适配抽象模块:用于对适用于各个即时通讯工具的自建应用进行抽象化,以获得自建应用框架和配置参数;
9.协议模块:用于设置自建应用的指令协议;
10.主服务:用于接收待创建配置参数,根据所述自建应用框架和待创建配置参数创建指向子服务的自建应用;主服务还用于利用所述自建应用接收待处理指令,在利用所述指令协议解析所述待处理指令后,将所述待处理指令传递给对应的子服务;主服务还用于
接收子服务返回的处理结果,并传递给所述自建应用;
11.多个子服务:用于对所述待处理指令进行处理,以获得所述处理结果。
12.优选地,所述适配抽象模块具体用于:
13.根据多个即时通讯工具中自建应用基本接入流程的共同部分创建所述自建应用框架;
14.根据多个即时通讯工具中自建应用服务端的差异部分确定所述配置参数。
15.优选地,所述自建应用框架包括:
16.在所述即时通讯工具创建自建应用名称;
17.在所述即时通讯工具打开自建应用,记录自建应用的唯一信息为应用验证码;
18.在自建应用对应的子服务上,利用所述应用验证码服务完成数据验证;
19.在所述即时通讯工具打开子服务。
20.优选地,所述配置参数包括所述自建应用的协议、接口和所述唯一信息。
21.优选地,所述指令协议包括多条指令,其中每条指令包括命令、至少一个子命令、至少一个选项和/或至少一个参数。
22.优选地,所述指令协议包括配置协议和使用协议;
23.所述配置协议用于对所述子服务、命令、子命令进行新增、修改、删除或查询;
24.所述使用协议用于对所述指令协议进行解析。
25.优选地,所述主服务具体用于:
26.接收待创建配置参数;
27.接收待创建自建应用的子命令和层级结构;
28.利用所述自建应用框架、待创建配置参数、所述子命令和所述层级结构创建所述自建应用。
29.优选地,所有所述子服务呈树状结构分布;不同的所述子命令对应不同的子服务。
30.优选地,所述待处理指令按照子命令的层级结构向下传递;所述处理结果按照子命令的层级结构向上传递。
31.由上述技术方案可知,本发明提供的基于即时通讯工具自建应用的机器人,通过统一、简洁、最优的企业自建应用,将即时通讯工具和企业的多个网站/后台以分布式的方式联合起来,以指令式的交互方式对企业自建应用进行使用、配置和管理,近一步减少交互过程,减少了企业自建应用的开发/适配/维护的工作量。
附图说明
32.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
33.图1为实施例一提供的基于即时通讯工具自建应用的机器人的模块框图。
具体实施方式
34.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范
围。需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
35.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
36.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
37.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0038]
实施例一:
[0039]
一种基于即时通讯工具自建应用的机器人,参见图1,包括:
[0040]
适配抽象模块:用于对适用于各个即时通讯工具的自建应用进行抽象化,以获得自建应用框架和配置参数;
[0041]
协议模块:用于设置自建应用的指令协议;
[0042]
主服务:用于接收待创建配置参数,根据所述自建应用框架和待创建配置参数创建指向子服务的自建应用;主服务还用于利用所述自建应用接收待处理指令,在利用所述指令协议解析所述待处理指令后,将所述待处理指令传递给对应的子服务;主服务还用于接收子服务返回的处理结果,并传递给所述自建应用;
[0043]
多个子服务:用于对所述待处理指令进行处理,以获得所述处理结果。
[0044]
具体地,适配抽象模块用于对自建应用进行适配与抽象,即适配抽象模块是将多个即时通讯工具的自建应用集中到一起,并屏蔽各个即时通讯工具中自建应用的技术差异。其中,自建应用框架体现了各个即时通讯工具中自建应用的共同点,配置参数体现了各个即时通讯工具中自建应用的区别点。协议模块主要是用来设置指令协议,指令协议用于将企业的各个网站/后台连接在一起,指令协议可以通过树型的方式进行扩展。
[0045]
主服务用于进行子服务的创建,其中一个子服务对应一个自建应用。主服务还用于集中进行待处理指令的分配,将待处理指令分配给指定的子服务。待处理指令为用户通过即时通讯工具发出的自建应用的指令。主服务还用于进行子服务执行结果返回。子服务与自建应用对应,用于执行待处理指令。
[0046]
该基于即时通讯工具自建应用的机器人,通过统一、简洁、最优的企业自建应用,将即时通讯工具和企业的多个网站/后台以分布式的方式联合起来,以指令式的交互方式对企业自建应用进行使用、配置和管理,近一步减少交互过程,减少了企业自建应用的开发/适配/维护的工作量。
[0047]
实施例二:
[0048]
实施例二在实施例一的基础上,对适配抽象模块进行进一步限定。
[0049]
所述适配抽象模块具体用于:
[0050]
根据多个即时通讯工具中自建应用基本接入流程的共同部分创建所述自建应用
框架;
[0051]
根据多个即时通讯工具中自建应用服务端的差异部分确定所述配置参数。
[0052]
优选地,所述自建应用框架包括:
[0053]
在所述即时通讯工具创建自建应用名称;
[0054]
在所述即时通讯工具打开自建应用,记录自建应用的唯一信息为应用验证码;
[0055]
在自建应用对应的子服务上,利用所述应用验证码服务完成数据验证;
[0056]
在所述即时通讯工具打开子服务。
[0057]
优选地,所述配置参数包括所述自建应用的协议、接口和所述唯一信息。
[0058]
具体地,该适配抽象模块针对共同部分、协议、接口实现各个即时通讯工具中自建应用的适配与抽象。适配抽象模块对常用的即时通讯工具中自建应用基本接入流程的共同部分创建自建应用框架。自建应用框架包括:
[0059]
1)在即时通讯工具的企业管理后台里的应用管理创建自建应用名称。例如在即时通讯工具的企业管理后台输入:应用名称,创建成功。
[0060]
2)获取自建应用的唯一信息作为应用验证使用。例如记录应用id(app id)和应用密钥(app secret)作为和即时通讯工具的企业自建应用交流通信的账号和密码。
[0061]
3)填写自建应用的服务端回调并验证通过。主服务器可以通过应用验证码进行验证,即服务器回调。服务器回调与企业自建应用都需要使用应用验证码进行验证。
[0062]
4)在子服务处理即时通讯工具收到的信息并返回。当在即时通讯工具的企业管理后台,打开企业自建应用时,验证流程包括:企业自建应用问"出示账号(即应用id,app id)",服务器回调答"账号:xxxxx

xxxx

xxxx

xxxx",企业自建应用问"正确,我随机产生了用应用密钥(app secret)加密的结果:qajdskflqjwefasdfwa,请加密前的原文是什么",服务器回调答"原文:今天天气真好",企业自建应用答:"正确,验证通过"。
[0063]
适配抽象模块根据多个即时通讯工具中自建应用服务端的差异部分确定所述配置参数,配置参数包括应用的验证协议、接口,协议(不同的即时通讯工具支持不同的协议,协议包括参数/返回/签名/校验/加密/解密等等),接口(不同的即时通讯工具的验证接口配置在不同的服务器上,接口地址不一致),应用的唯一信息,应用id,应用密钥。
[0064]
例如,对不同的即时通讯工具的配置如下:
[0065]
即时通讯工具a:服务端回调:https://www.公司.com/im_callback?协议=时通讯工具a;验证地址:https://www.dingding.com/verify;应用id:1234

5678

9999;应用密钥:8888

3333

7776;签名算法:rsa;校验算法:sha256;加密/解密算法:3des。
[0066]
即时通讯工具b:服务端回调:https://www.公司.com/im_callback?协议=即时通讯工具b;验证地址:https://www.weixin.com/verify;应用id:6666

5555

4444;应用密钥:3afg

32ge

xxcs;签名算法:rsa;校验算法:sha1;加密/解密算法:aes。
[0067]
即时通讯工具c:服务端回调:https://www.公司.com/im_callback?协议=即时通讯工具c;验证地址:https://www.feishu.com/verify;应用id:6623

3gfb

2zad;应用密钥:882d

zzdg

2239;签名算法:rsa;校验算法:md5;加密/解密算法:des。
[0068]
因此,在每个即时通讯工具创建一个企业自建应用时,可以通过以上的方式将自建应用的请求/返回集中到主服务上。如果需要新增其他即时通讯工具,可以参照上述方式进行创建、验证和接入,减少开发人员的接入成本,降低了新接入流程的工作量,支持更多
的即时通讯工具。
[0069]
本发明实施例所提供的机器人,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0070]
实施例三:
[0071]
实施例三在上述实施例的基础上,对协议模块进行进一步限定。
[0072]
所述指令协议包括多条指令,其中每条指令包括命令、至少一个子命令、至少一个选项和/或至少一个参数。
[0073]
所述指令协议包括配置协议和使用协议;
[0074]
所述配置协议用于对所述子服务、命令、子命令进行新增、修改、删除或查询;
[0075]
所述使用协议用于对所述指令协议进行解析。
[0076]
具体地,因为适配抽象模块将自建应用统一了,每个即时通讯工具对应一个应用,而自建应用的消息可能需要去到不同的网站/后台服务,所以通过指令协议判断来自于自建应用的消息应该由哪个子服务处理。指令协议的构造(以下的[]表示其中的内容可选)的基本形式包括:
[0077]
1)指令[参数1参数2...];
[0078]
例如:echo online中,指令为:echo,参数为:online。
[0079]
2)指令[>子指令1>子指令2...][参数1参数2...];
[0080]
例如:echo>asian>china online中,指令为:echo;子指令为:>asian>china,参数为:online。
[0081]
3)指令[>子指令1>子指令2...][

选项1

选项2...][参数1参数2...];
[0082]
例如:echo>asian>china

a

s online中,指令为:echo,子指令为:>asian>china,选项为:

a

s,参数为:online。
[0083]
其中,指令、子指令、选项、参数都有严格的顺序,不可调换。""(空格)用于分隔指令中的每一个内容,">"用于标记子指令,"

"用于标记选项。
[0084]
指令协议还可以设置返回格式,用于返回是给用户查看的,主服务并不需要对返回的数据进行任何处理,所以返回格式只要保证方便查看即可,一般是明文字符串。
[0085]
指令协议还包括配置指令set。配置指令的目的是为了扩展指令机器人,配置指令包括以下几种格式:
[0086]
1)set[>指令>子指令1>子指令2...][

r];返回:(下一层)指令机器人的指令、基本描述、地址。其中参数

r表示递归显示所有层级的子命令。
[0087]
例如输入set

r,返回:abc abc指令https://网站1.公司.com/指令/abc,abc2 abc2指令https://网站1.公司.com/指令/abc2,abc3 abc3指令https://网站1.公司.com/指令/abc3,def def指令https://网站2.公司.com/指令/def,ghi ghi指令https://网站3.公司.com/指令/ghi,ghi2ghi2指令https://网站3.公司.com/指令/ghi2。
[0088]
2)set[>指令>子指令1>子指令2...]基本描述地址;
[0089]
例如输入set>abc abc指令https://网站1.公司.com/指令/abc;返回:指令abc创建/修改成功。表示成功。创建好子服务后,假设输入待处理指令set>abc,则abc开头的消息都会由"https://网站1.公司.com/指令/abc"进行处理。
[0090]
3)set[>指令>子指令1>子指令2...]

d。
[0091]
例如输入set>abc

d,返回:指令abc删除成功。表示成功,所有与此指令有关的消息都会返回"指令不存在"。
[0092]
本发明实施例所提供的机器人,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0093]
实施例四:
[0094]
实施例四在上述实施例的基础上,对主服务进行进一步限定。
[0095]
所述主服务具体用于:
[0096]
接收待创建配置参数;
[0097]
接收待创建自建应用的子命令和层级结构;
[0098]
利用所述自建应用框架、待创建配置参数、所述子命令和所述层级结构创建所述自建应用。
[0099]
具体地,主服务还可以限定指令机器人的层级。处理一级指令的机器人为一级机器人,例如:echo,此指令由一级机器人处理。处理二级指令的机器人为二级机器人,例如:echo>asian,此指令由二级机器人处理,以此类推。主服务可以认为是"零级机器人"或"根机器人",所有的子服务都位于此机器人层级之下。
[0100]
待处理指令的层级传递方式为:多层机器人结构中,由上级机器人传递到下级机器人,例如层级传递方式为:(即时通讯工具)用户

>自建应用适配与抽象

>指令机器人主服务

>一级机器人

>二级机器人

>...。结果返回的传递与指令的层级传递正好相反,从下级机器人传递到上级机器人,最终返回给用户,例如...

>二级机器人

>一级机器人

>指令机器人主服务

>自建应用适配与抽象

>(即时通讯工具)用户。
[0101]
例如:echo>asian>china

a

s online是一个三级指令,表示由处理echo的一级机器人传递给下一级负责处理asian的二级机器人,再传递给下一级机负责处理china的三级机器人。
[0102]
主服务可以通过配置指令,对一级指令/机器人进行设置,例如增/删/改/查,并将处理结果向上传递,最终返回给用户。主服务还可以保存子指令记录,例如保存子指令、基本描述、地址等等。主服务将除配置指令set以外的一级/二级/三级/...指令向下传递给下一级机器人处理。子服务对来自于下一级机器人返回的结果向上传递,最终返回用户。
[0103]
本发明实施例所提供的机器人,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0104]
实施例五:
[0105]
实施例五在上述实施例的基础上,对子服务进行进一步限定。
[0106]
所有所述子服务呈树状结构分布;不同的所述子命令对应不同的子服务。
[0107]
优选地,所述待处理指令按照子命令的层级结构向下传递;所述处理结果按照子命令的层级结构向上传递。
[0108]
具体地,子服务一般作为一级/二级/三级/...机器人存在,处理对应级别的指令。子服务包括设置、保存子指令记录、向下传递、向上返回等功能,子服务还可以实现特有的指令,作为功能提供给用户使用。
[0109]
例如:目前已有一个一级指令online,用于显示当前的在线用户数量,指令服务地址为:"https://网站1.公司.com/指令/online",如果需要增加一个二级指令asian,用于
显示当前的亚洲在线用户数量,则在网站:"https://asian.网站1.公司.com/"下输入"asian"指令,返回"当前的亚洲在线用户数量",指令服务地址:"https://asian.网站1.公司.com/指令/asian"。所以假设在即时通讯工具里的群里,发送内容:"@企业自建应用set>online>asian显示亚洲在线用户数https://asian.网站1.公司.com/指令/asian",则将此指令扩展进了分布式指令机器人。
[0110]
子服务实现一个动态的任意多层的树形、可配置的的分布式的指令机器人,将多个即时通讯工具和多个后台结合,方便员工/外部人员使用。
[0111]
本发明实施例所提供的机器人,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0112]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1