第三方程序与消息接发系统的集成的制作方法

文档序号:16995281发布日期:2019-03-02 01:18阅读:223来源:国知局
第三方程序与消息接发系统的集成的制作方法

本发明一般来说涉及消息接发系统,且更明确地说涉及第三方程序与消息接发系统的集成。

消息接发系统允许用户或参与者通过在聊天会话中交换消息而彼此通信。然而,聊天会话的参与者不一定是人。举例来说,许多消息接发系统允许第三方程序充当聊天会话中的参与者。第三方程序是与聊天会话中的其它参与者交互的自动化程序。第三方程序可操作消息接发系统的帐户。第三方程序可接收来自参与者的消息且基于所接收消息而执行功能。第三方程序还可称为机器人(bot)、官方帐户及软件聊天好友。

用户可希望调用第三方程序作为聊天会话中的参与者以提供定制功能,例如,提供相关新闻报道、提供补充内容、进行比赛等。常规地,力求调用第三方程序作为聊天会话中的参与者的用户必须定位消息接发系统的应用商店中的第三方程序。用以定位应用商店中的第三方程序的此发现过程通常涉及搜索机制或类别树的遍历。用于定位第三方程序的这些常规方法通常是不方便的、困难的且产生不准确结果。



技术实现要素:

根据一实施例,用于调用第三方程序作为聊天会话的额外参与者的系统及方法包含:运用触发条件来注册所述第三方程序。所述触发条件包括与所述聊天会话有关的事件、准则或状态中的至少一者,例如,在所述聊天会话中提及的关键字。通过以下方式而运用触发条件来注册所述第三方程序:从与所述第三方程序相关联的实体接收所述触发条件,且将所述触发条件与所述第三方程序之间的关联性存储于注册表中。

监测消息接发平台的聊天会话的事件。确定聊天会话的事件中的至少一者满足与第三方程序相关联的触发条件。举例来说,可从注册表检索触发条件与第三方程序之间的关联性,且将事件中的至少一者与触发条件进行比较以确定聊天会话的事件中的至少一者满足与第三方程序相关联的触发条件。响应于确定聊天会话的事件中的至少一者满足与第三方程序相关联的触发条件,调用第三方程序作为聊天会话的额外参与者。

根据一实施例,调用第三方程序作为聊天会话的额外参与者包含:将通知发送到第三方程序;接收来自第三方程序的指示其对被调用的兴趣的响应;基于所述响应而将第三方程序呈现给聊天会话的现有参与者;及接收来自现有参与者的输入以邀请第三方程序作为聊天会话的额外参与者。来自第三方程序的响应可包含由第三方程序提供的服务。由第三方程序提供的服务可呈现给现有参与者。如果第三方程序满足选择准则,那么将通知发送到第三方程序。

根据一实施例,调用第三方程序作为聊天会话的额外参与者包含:将第三方程序呈现给聊天会话的现有参与者;及接收来自现有参与者的输入以调用第三方程序作为聊天会话的额外参与者。

所属领域的技术人员参考以下详细说明及附图将明了本发明的这些及其它优点。

附图说明

图1展示根据一或多个实施例的通信系统的高级概述;

图2a展示根据一或多个实施例的用于发现及调用聊天会话中的第三方程序的架构的详细视图;

图2b展示根据一或多个实施例的注册表的详细视图;

图3展示根据一或多个实施例的用于发现及调用聊天会话中的第三方程序的方法的流程图;且

图4展示根据一或多个实施例的用于发现及调用聊天会话中的第三方程序的计算机的高级框图。

具体实施方式

图1展示根据一或多个实施例的通信系统100的高级概述。通信系统100包含一或多个用户或参与者102-1、...、102-n(统称为参与者102)。参与者102可经由通信地耦合到网络112的计算装置(未展示)在消息接发平台106上执行的聊天会话108中彼此交换消息。网络112可包含任何类型的网络或不同类型的网络的组合。举例来说,网络112可包含因特网、内联网、局域网络(lan)、广域网络(wan)、有线及/或无线网络、光纤通道存储区域网络(san)、蜂窝式通信网络等。还涵盖其它类型的网络。

在聊天会话108期间,参与者102可发现调用一或多个第三方程序104-1、...、104-i(统称为第三方程序104)作为聊天会话108的额外参与者是合意的,此归因于第三方程序104提供的功能性。第三方程序104是与聊天会话108中的参与者102交互的自动化程序。第三方程序104可操作消息接发平台106的帐户。第三方程序104可为聊天会话108提供各种功能。第三方程序104的示范性功能可包含显示天气预报、翻译消息、促进比赛的进行及提供补充内容。不同消息接发平台可以不同名称提及第三方程序104。举例来说,第三方程序104还可称为机器人、官方帐户及软件聊天好友。

常规地,参与者定位应用商店(例如,消息接发平台的应用商店)中的第三方程序。此通常涉及搜索机制或遍历类别树,这可是不方便的、困难的且产生不准确结果。

有利地,调用系统110提供用于识别第三方程序104的自动过程。调用系统110调用第三方程序104作为现有聊天会话108中的额外参与者。关于图2a及2b更详细地论述调用系统110。

图2a展示根据一或多个实施例的用于实施消息接发平台的架构200的详细视图。架构200包含调用系统110以促进对第三方程序104的识别且促进第三方程序104作为现有聊天会话108中的额外参与者的调用。

调用系统110包含用于注册一或多个第三方程序104的注册表206。举例来说,第三方程序104可由第三方程序104的开发人员运用注册表206来注册。注册表206运用一或多个相关联触发条件来注册第三方程序104中的每一者。触发条件表示触发将相关联第三方程序104调用为聊天会话108中的额外参与者的与聊天会话108有关的事件、准则或状态。举例来说,触发条件可为:在参与者102的位置处正下雨或参与者102在聊天会话108内提及关键字。在一个实施例中,触发条件作为与第三方程序104相关联的标签(例如,用词)而注册于注册表206中。触发条件反映第三方程序104对聊天会话108内发生的或以其它方式与聊天会话108相关的且因此可与参与者102相关的事件、条件或状态的“兴趣”。

图2b展示根据一或多个实施例的注册表206的详细视图。注册表206包含具有一或多个相关联触发条件的所注册第三方程序104的数据库或表格。在图2b的注册表206中所展示的实例中,称作“天气”的第三方程序104包含包括在聊天会话108中提及关键字“天气”的触发条件。图2b的注册表206中还展示,称作“翻译程序”的第三方程序104包含包括在聊天会话108中检测到外语(即,不同于聊天会话108中主要使用的语言的语言)的触发条件。

当参与者102参与图2a中的聊天会话108时,产生聊天会话108的事件202-1、...、202-j(统称为事件202)。举例来说,在一个实施例中,事件202可由消息接发平台106使用已知技术产生。事件202可包含与聊天会话108有关的任何事件。事件202的实例可包含参与者102对关键字的提及、从参与者102所链接的网站提取的信息、聊天会话108的参与者102的位置信息、对参与者102在聊天会话108中所发送的外语消息的检测等。事件处理器204接收事件202且分析事件202以确定一或多个事件202是否满足注册表206中与第三方程序104相关联的触发条件。

在事件处理器204确定事件202满足与第三方程序104相关联的触发条件的情况下,调用第三方程序104作为聊天会话108的额外参与者。调用第三方程序104作为聊天会话108的额外参与者可涉及:致使第三方程序104执行(如果尚未执行),及使执行的第三方程序104作为聊天会话108的额外参与者而加入。

事件处理器204可通过一或多个机制而调用第三方程序104作为聊天会话108的额外参与者。这些机制包含但不限于将消息发送到已执行的第三方程序104(即,处于作用或暂停状态的第三方程序)、将用以开始执行第三方程序104的消息发送到操作系统、将用以开始在虚拟机上执行第三方程序104的消息发送到计算云。一旦第三方程序104代表调用系统110而执行(即,响应于调用机制),第三方程序104便可通过多种加入程序作为额外参与者而加入聊天会话108。在一些实施例中,所发送的用于执行第三方程序104的消息包含第三方程序104加入聊天会话108及在会话期间实施适当动作所需的信息(例如,与触发事件相关联的数据)。

在用于调用第三方程序104作为聊天会话108的额外参与者的第一实施例中,在事件处理器204确定事件202满足与第三方程序104相关联的触发条件的情况下,事件处理器204将通知发送到第三方程序104。所述通知可包含对第三方程序104与事件202所满足的触发条件相关联的指示。在一些实施例中,通知仅在第三方程序104满足一或多个选择准则的情况下发送到第三方程序104。因此,只有满足选择准则的第三方程序104才可作为额外参与者而加入聊天会话108。示范性选择准则包含排名在前几个第三方程序当中、具有特定等级、具有特定数目个评论、具有特定数目个用户、具有特定数目次调用或任何其它适合选择准则。

响应于通知,与所满足触发条件相关联的第三方程序104将指示第三方程序104对被调用作为聊天会话108的额外参与者的兴趣的响应的发送到事件处理器204。在一个实例中,响应是指示第三方程序104对被调用作为聊天会话108的额外参与者的兴趣的肯定或否定(例如,是或否)。在另一实例中,仅发送肯定响应(即,指示第三方程序104对被调用作为额外参与者感兴趣)。响应还可包含与第三方程序104可提供的服务有关的信息。

事件处理器204根据各种额外准则对第三方程序104(其以如下肯定指示作出响应:其对被调用作为聊天会话108的额外参与者感兴趣)进行分类、排名及/或筛选(即,连同其它第三方程序104一起进行分类、排名及/或筛选,所述其它第三方程序与所满足触发条件相关联且以如下指示作出响应:其对被调用感兴趣)。举例来说,各种额外准则可是基于(例如)第三方程序104的排名、第三方程序104的特定等级、第三方程序104的评论的数目、第三方程序104的用户的特定数目以及第三方程序104的调用的特定数目。

事件处理器204根据呈现策略而将第三方程序104呈现给聊天会话108的参与者102。呈现策略定义将如何基于分类、排名及/或筛选而将第三方程序104呈现给参与者102。举例来说,呈现策略可指示将以经排序阵列来呈现第三方程序104(以及满足本文中所描述的要求的其它第三方程序104)。所述阵列可是基于分类、排名及/或筛选(例如,基于排名、等级、评论的数目、用户的数目、调用的数目等)而排序。

用于将第三方程序104呈现给参与者102的呈现策略可经实施以建立支持所赞助第三方程序的商业框架。事件处理器204根据各种额外商业敏感性准则而对第三方程序104(其以如下指示作出响应:其对被调用作为聊天会话108的额外参与者感兴趣)进行分类、排名及/或筛选。举例来说,各种额外准则可是基于(例如)第三方程序104的提供者向事件处理器204的提供者做出的用于优先呈现的付款。出于各种商业目的,可使用对第三方程序的优先处理进行付费。举例来说,广告活动可使用突出的程序演示作为用以增大程序或相关联服务的可见性及认知度的方法。此类所赞助第三方程序可通过呈现与其赞助商相关联的广告、应用程序、服务而表示(举例来说)运动队、电视节目、电影、零售商等。

在一些实施例中,第三方程序104的仅一个子组以阵列形式呈现给参与者102。所述子组可基于分类、排名及/或筛选(例如,仅排名在前三位的第三方程序104)而确定。第三方程序104可运用对第三方程序104的说明而呈现。所述说明可包含在响应中所接收的第三方程序104所提供的服务。

接着,参与者102可选择调用或邀请第三方程序104作为聊天会话108的额外参与者。作为响应,事件处理器204致使执行(如果尚未执行)所选择第三方程序104。事件处理器204还将如下信息发送到所选择第三方程序104:所选择第三方程序104需要加入聊天会话108。此信息还可包含第三方程序104在聊天会话108期间实施适当动作所需的数据(例如,参数)。举例来说,所述信息可包含与触发事件相关联的数据。

在一个实施例中,代替事件处理器204将如下信息发送到所选择第三方程序104:所选择第三方程序104需要加入聊天会话108,在事件处理器204将请求操作系统开始执行所选择第三方程序104的消息发送到操作系统的情况下,被发送到操作系统的用于执行所选择第三方程序104的消息还包含使得现在执行的第三方程序104能够加入聊天会话108的信息以及第三方程序104在聊天会话108期间实施适当动作所需的数据。

一旦第三方程序104已作为额外参与者而加入聊天会话108,第三方程序104便可向其它参与者102及/或第三方程序104提供信息/与其它参与者102及/或第三方程序104交换信息。

在用于调用第三方程序104作为聊天会话108的额外参与者的第二实施例中,响应于事件处理器204确定事件202满足与第三方程序104相关联的触发条件,事件处理器204将与所满足触发条件相关联的第三方程序104呈现给聊天会话108的参与者102(即,而不是首先将通知发送到第三方程序104)。事件处理器204可根据呈现策略运用对第三方程序104的说明而呈现第三方程序104。接着,参与者102可选择或以其它方式批准或不批准第三方程序104被调用作为聊天会话108中的额外参与者。作为响应,事件处理器204致使执行(如果尚未执行)所选择第三方程序104且将通知发送到所选择第三方程序104以邀请第三方程序104作为聊天会话108中的额外参与者。所述通知可包含如下信息:第三方程序104需要加入聊天会话108。此信息还可包含第三方程序104在聊天会话108期间实施适当动作所需的数据(例如,与触发事件相关联的数据)。一旦第三方程序104已作为额外参与者而加入聊天会话108,第三方程序104便可向其它参与者102及/或第三方程序104提供信息/与其它参与者102及/或第三方程序104交换信息。

在用于调用第三方程序104作为聊天会话108的额外参与者的第三实施例中,在不具有来自参与者102的任何输入的情况下,自动调用与所满足触发条件相关联的第三方程序104作为聊天会话108的额外参与者。举例来说,事件处理器204可自动致使执行(如果尚未执行)第三方程序104且将通知发送到第三方程序104以使第三方程序104作为额外参与者加入聊天会话108中。所述通知可包含关于第三方程序104需要加入聊天会话108的信息以及第三方程序104在聊天会话108期间实施适当动作所需的数据。在又其它实施例中,事件202用于在新聊天会话中自动开始执行第三方程序104。有利地,调用系统110允许用于调用第三方程序104作为现有聊天会话108中的额外参与者的更简单且更方便的方法。通过建立可发现及调用第三方程序104的框架、借此简化第三方程序104的译码,调用系统110还降低开发第三方程序104的成本。通过允许给定第三方程序104更容易地被其它应用程序定位及使用,调用系统110进一步增加第三方程序104的价值。

调用系统110还允许第三方程序104依据第三方程序104执行的功能及触发第三方程序104的调用的触发条件而发布第三方程序104的身份。因此,可通过搜索第三方程序104的所发布特性来发现第三方程序104。其它应用程序不仅可按名称而且还可按第三方程序104执行的功能来搜索第三方程序104,以便触发第三方程序104的调用。

图3展示根据一或多个实施例的用于调用第三方程序作为聊天会话的额外参与者的方法300的流程图。方法300可例如由图1及2a中说明性地描绘的调用系统110执行。

在步骤302处,监测消息接发平台的聊天会话的事件。在一个实施例中,事件可由消息接发平台使用已知方法产生。事件可包含聊天会话中发生的状态或动作。

在步骤304处,确定聊天会话的事件中的至少一者满足与第三方程序相关联的触发条件。触发条件可表示与消息接发平台的聊天会话有关的事件、准则或状态。举例来说,触发条件可为聊天会话的参与者所提及的关键字。第三方程序可已随方法300的初始步骤运用触发条件而注册。运用触发条件来注册第三方程序可包含:接收来自与第三方程序相关联的实体的触发条件;及将触发条件与第三方程序之间的关联性存储于注册表中。与第三方程序相关联的实体可包含(举例来说)第三方程序的开发人员、第三方程序自身或任何其它实体。通过从注册表检索触发条件与第三方程序之间的关联性及将事件中的至少一者与触发条件进行比较以确定聊天会话的事件中的至少一者满足与第三方程序相关联的触发条件而确定聊天会话的事件中的至少一者满足与第三方程序相关联的触发条件。

在步骤306处,响应于确定事件中的至少一者满足与第三方程序相关联的触发条件,调用第三方程序作为聊天会话的额外参与者。调用第三方程序作为额外参与者可包含致使执行(如果尚未执行)第三方程序及作为聊天会话的额外参与者而加入所执行第三方程序。

在一个实施例中,通过将指示触发条件被满足的通知发送到第三方程序而调用第三方程序作为额外参与者。从第三方程序接收指示第三方程序对被调用的兴趣的响应。所述响应可包含与第三方程序可提供的服务有关的信息。可将第三方程序呈现给聊天会话的现有参与者。举例来说,可将对第三方程序的说明显示给现有参与者。所述说明可包含在响应中所接收的第三方程序可提供的服务。从现有参与者接收用以调用第三方程序作为聊天会话的额外参与者的输入。

在另一实施例中,通过将第三方程序(例如,对第三方程序的说明)呈现给聊天会话的现有参与者而调用第三方程序作为额外参与者。接着从现有参与者接收用以调用第三方程序作为聊天会话中的额外参与者的输入。

本文中所描述的系统、设备及方法可使用数字电路或使用一或多个计算机(使用众所周知的计算机处理器、存储器单元、存储装置、计算机软件及其它组件)而实施。通常,计算机包含用于执行指令的处理器以及用于存储指令及数据的一或多个存储器。计算机还可包含或耦合到一或多个大容量存储装置,例如一或多个磁盘、内部硬盘及可拆卸磁盘、磁光盘、光盘等。

本文中所描述的系统、设备及方法可使用以客户端-服务器关系操作的计算机而实施。通常,在此系统种,客户端计算机相对于服务器计算机远程地定位且经由网络而交互。客户端-服务器关系可由相应客户端及服务器计算机上运行的计算机程序定义及控制。

本文中所描述的系统、设备及方法可在基于网络的云计算系统内实施。在此基于网络的云计算系统种,服务器或连接到网络的另一处理器经由网络而与一或多个客户端计算机通信。举例来说,客户端计算机可经由驻存于客户端计算机上且在客户端计算机上操作的网络浏览器应用程序而与服务器通信。客户端计算机可将数据存储于服务器上且经由网络而存取数据。客户端计算机可经由网络而将对数据的请求或对在线服务的请求发射到服务器。服务器可执行所请求服务且将数据提供到客户端计算机。服务器还可发射适于致使客户端计算机执行指定功能(例如,执行运算、在屏幕上显示指定数据等)的数据。举例来说,服务器可发射适于致使客户端计算机执行本文中所描述的方法步骤中的一或多者(包含图3的步骤中的一或多者)的请求。本文中所描述的方法的某些步骤(包含图3的步骤中的一或多者)在基于网络的云计算系统中可由服务器或由另一处理器执行。本文中所描述的方法的某些步骤(包含图3的步骤中的一或多者)在基于网络的云计算系统中可由客户端计算机执行。本文中所描述的方法的步骤(包含图3的步骤中的一或多者)在基于网络的云计算系统中可以任何组合方式由服务器及/或由客户端计算机执行。

本文中所描述的系统、设备及方法可使用供由可编程处理器执行的有形地体现于信息载体中(例如,非暂时性机器可读存储装置中)的计算机程序产品而实施;且本文中所描述的方法步骤(包含图3的步骤中的一或多者)可使用可由此处理器执行的一或多个计算机程序而实施。计算机程序是在计算机中可直接或间接用于执行特定活动或引起特定结果的一组计算机程序指令。可以任何形式的编程语言(包含编译语言或解译语言)写入计算机程序,且可以任何形式部署所述计算机程序,包含部署为独立程序或部署为模块、组件、子例程或适合在计算环境中使用的其它单元。

图3中描绘可用于实施本文中所描述的系统、设备及方法的实例性计算机的高级框图400。计算机402包含操作地耦合到数据存储装置412及存储器410的处理器404。处理器404通过执行定义计算机402的总体操作的计算机程序指令而控制此些操作。计算机程序指令可存储于数据存储装置412或其它计算机可读媒体中,且在期望执行计算机程序指令时加载到存储器410中。因此,图3的方法步骤可由存储于存储器410及/或数据存储装置412中的计算机程序指令定义,且由执行计算机程序指令的处理器404控制。举例来说,计算机程序指令可作为所属领域的技术人员所编程的计算机可执行代码而实施以执行图3的方法步骤。因此,通过执行计算机程序指令,处理器404执行图3的方法步骤。计算机402还可包含用于经由网络而与其它装置通信的一或多个网络接口406。计算机402还可包含实现用户与计算机402的交互的一或多个输入/输出装置908(例如,显示器、键盘、鼠标、扬声器、按键等)。

处理器404可包含通用微处理器及专用微处理器两者,且可为计算机402的唯一处理器或多个处理器中的一者。举例来说,处理器404可包含一或多个中央处理单元(cpu)。处理器404、数据存储装置412及/或存储器410可包含一或多个专用集成电路(asic)及/或一或多个现场可编程门阵列(fpga)、辅以一或多个专用集成电路(asic)及/或一或多个现场可编程门阵列(fpga)或并入一或多个专用集成电路(asic)及/或一或多个现场可编程门阵列(fpga)中。

数据存储装置412及存储器410各自包含有形非暂时性计算机可读存储媒体。数据存储装置412及存储器410可各自包含高速随机存取存储器,例如动态随机存取存储器(dram)、静态随机存取存储器(sram)、双倍数据速率同步动态随机存取存储器(ddrram)或其它随机存取固态存储器装置,且可包含非易失性存储器,例如一或多个磁盘存储装置(例如,内部硬盘及可拆卸磁盘)、磁光盘存储装置、光盘存储装置、快闪存储器装置、半导体存储器装置(例如,可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)、数字多功能光盘只读存储器(dvd-rom)磁盘)或其它非易失性固态存储装置。

输入/输出装置408可包含外围设备,例如打印机、扫描仪、显示屏等。举例来说,输入/输出装置408可包含用于向用户显示信息的显示装置(例如阴极射线管(crt)或液晶显示器(lcd)监视器)、用户可用以将输入提供到计算机402的键盘及指向装置(例如,鼠标或轨迹球)。

本文中所论述的系统及设备中的任一者或全部(包含图1及2a的调用系统110的元件)可使用一或多个计算机(例如计算机402)而实施。

所属领域的技术人员将认识到,实际计算机或计算机系统的实施方案可具有其它结构且还可含有其它组件,且图4是出于说明性目的的此计算机的组件中的一些组件的高级表示。

前述具体实施方式应理解为在各方面为说明性及示范性而限制性,且本文中所揭示的本发明的范围并不依据具体实施方式而确定,而是依据如根据专利范准许的全面广度所解释的权利要求书而确定。应理解,本文中所展示及描述的实施例仅图解说明本发明的原理,且所属领域的技术人员可在不背离本发明的范围及精神的情况下实施各种修改。所属领域的技术人员可在不背离本发明的范围及精神的情况下实施各种其它特征组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1