在聊天和文档编辑会话中的内联用户寻址的制作方法

文档序号:6494640阅读:222来源:国知局
在聊天和文档编辑会话中的内联用户寻址的制作方法
【专利摘要】在具有一个或多个处理器和存储待由该一个或多个处理器执行的一个或多个程序的存储器的服务器上执行计算机实现的方法。该方法包括从在聊天会话中的参与者接收聊天内容。该方法还包括在聊天内容内检测邀请指定用户加入聊天会话的嵌入请求。该方法进一步包括响应于检测到该嵌入请求向该指定用户发送邀请。
【专利说明】在聊天和文档编辑会话中的内联用户寻址
【技术领域】
[0001]本发明总体上涉及在计算机网络系统内的通信,以及具体地涉及用于邀请用户加入聊天会话和文档编辑会话的方法和系统。
【背景技术】
[0002]在线协作工具允许用户在项目上协作、共享信息、会面并讨论问题以及制作内容,所有均是在线的。诸如在线文档编辑应用和在线聊天应用的工具在因特网用户之中很受欢迎。
[0003]指导新用户加入聊天会话的对话流采用数个步骤。例如,聊天会话的一个或多个用户必须导航菜单选项来邀请新用户,并且可能需要重复或概述聊天对话的新用户需要知道的相关部分。
[0004]类似地,邀请新用户加入文档编辑会话采用数个步骤。例如,文档编辑会话的一个或多个用户必须导航菜单选项来邀请新用户、向新用户分配访问权限、向新用户解释请求其存在的原因,然后,将新用户定向到文档的需要新用户的注意的部分。
[0005]因此,提供更容易地邀请用户加入聊天会话或文档编辑会话的系统和方法将是期望的。

【发明内容】

[0006]所公开的方法和设备减少或消除了与在线协作工具相关联的上述不足和其他问题。
[0007]根据一些实施例,在具有一个或多个处理器和存储待由该一个或多个处理器执行的一个或多个程序的存储器的服务器上执行计算机实现的方法。该方法包括从在聊天会话中的参与者接收聊天内容。该方法还包括在聊天内容内检测邀请指定用户加入聊天会话的嵌入请求。该方法进一步包括响应于检测到该嵌入请求向该指定用户发送邀请。
[0008]在一些实施例中,检测包括:检测聊天内容中的预定义符号,其后跟在预定义符号之后输入的一个或多个字符;基于在预定义符号之后输入的一个或多个字符来识别一个或多个联系人建议;以及向客户端发送一个或多个联系人建议。联系人建议来自相应参与者的地址簿。在一些实施例中,在接收在预定义符号之后的一个或多个字符的每一个连续字符时,重复对一个或多个联系人建议的识别和对联系人建议的发送。可选地,在接收新字符之后,仅在响应于该新字符所识别的联系人建议集改变时才发送更新的联系人建议。
[0009]在一些实施例中,嵌入请求包括后跟指定用户的用户标识符的预定义符号。在一些实施例中,邀请包括当被激活时向指定用户提供在与该指定用户相关联的客户端处的应用中的对该聊天会话的访问的链接。在一些实施例中,邀请进一步包括来自聊天会话的聊天文本。
[0010]在一些实施例中,向指定用户发送邀请包括当指定用户在线时,通过与以下中的一个相对应的在线信道发送邀请:与聊天会话相对应的应用的活动窗口、以及该应用的非活动窗口、以及除与聊天会话相对应的应用外的在线应用。
[0011]在一些实施例中,该方法进一步包括,响应于从指定用户接收对邀请的接受,向与该指定用户相关联的客户端发送聊天会话的聊天内容的至少部分。
[0012]在一些实施例中,该方法进一步包括从指定用户接收新的聊天内容,并且将该新的聊天内容发送给在聊天会话中的参与者。
[0013]在一些实施例中,该方法进一步包括根据从参与者接收的命令,对与聊天会话相对应的文档进行编辑,以及响应于检测到嵌入请求,将指定用户添加到文档的访问控制列表以使该指定用户能够访问该文档。在一些实施例中,从由以下组成的组中选择文档:字处理文档、电子表格文档、演示文档、绘图和网页。在一些实施例中,邀请包括到在被编辑的文档的链接。该链接包括指定当指定用户选择或激活该链接时指定用户的客户端最初显示或呈现的文档的部分的命令或位置参数。在一些实施例中,仅当在访问控制列表中尚未至少以与邀请相关联的访问级别列出指定用户时,才修改文档的访问控制列表。
[0014]根据一些实施例,计算机可读存储介质存储被配置供服务器系统的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括待由该一个或多个处理器执行以执行任何上述方法的指令。
[0015]根据一些实施例,服务器系统包括一个或多个处理器和存储供该一个或多个处理器执行以执行任何上述方法的一个或多个程序的存储器。
[0016]根据一些实施例,公开了在具有一个或多个处理器和存储一个或多个程序的存储器的服务器处执行管理协作文档编辑的方法,该一个或多个程序待由该一个或多个处理器执行,以执行所述方法。该方法包括从在文档编辑会话中的一个或多个用户接收用于编辑相应文档的文档编辑命令。该一个或多个用户被授权对相应文档进行编辑。该方法还包括根据从用户接收的命令,对相应文档进行编辑。所接收的命令包括关于文档的文档文本。该方法进一步包括在相应文档文本内检测邀请指定用户访问该相应文档的嵌入请求。该方法进一步包括通过向指定用户发送邀请来对检测到嵌入请求作出响应,以及如果需要的话,响应于检测到嵌入请求,将指定用户添加到相应文档的访问控制列表以使该指定用户能够访问该文档。
[0017]在一些实施例中,从由以下组成的组中选择文档:字处理文档、电子表格文档、演示文档、绘图和网页。
[0018]在一些实施例中,嵌入请求包括后跟指定用户的用户标识符的预定义符号。在一些实施例中,检测包括:检测文档文本内容中的预定义符号,其后跟在预定义符号之后输入的一个或多个字符;基于在预定义符号之后输入的一个或多个字符来识别一个或多个联系人建议;以及向客户端发送一个或多个联系人建议。联系人建议来自相应参与者的地址簿。在一些实施例中,该方法在接收在预定义符号之后的一个或多个字符的每一个连续字符时,重复对一个或多个联系人建议的识别和发送联系人建议的操作。
[0019]在一些实施例中,邀请包括到在被编辑的文档的链接。可选地,该链接包括指定当指定用户选择或激活该链接时指定用户的客户端最初显示或呈现的文档的部分的命令或位置参数。
[0020]在一些实施例中,向指定用户发送邀请包括当指定用户在线时,通过与以下中的一个相对应的在线信道发送邀请:与聊天会话相对应的应用的活动窗口、与文档编辑会话相对应的应用的活动窗口、与文档编辑会话相对应的应用的非活动窗口、以及除与文档编辑会话相对应的应用外的在线应用。
[0021]在一些实施例中,该方法进一步包括为与文档相关联的聊天对话从被授权访问文档的用户中的一个或多个接收聊天内容、将嵌入请求添加到该聊天对话、以及将聊天对话的包括嵌入请求的至少部分发送给被授权访问文档的用户中的一个或多个。在一些实施例中,该方法包括将到文档的与嵌入请求相对应的部分的链接添加到聊天对话。
[0022]根据一些实施例,计算机可读存储介质存储被配置供服务器系统的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括待由该一个或多个处理器执行以执行任何在本文所述的方法的指令。
[0023]根据一些实施例,服务器系统包括一个或多个处理器和存储供该一个或多个处理器执行以执行任何在本文所述的方法的一个或多个程序的存储器。
【专利附图】

【附图说明】
[0024]图1是图示依据一些实施例的分布式客户端-服务器系统的框图。
[0025]图2是根据一些实施例的客户端设备的框图。
[0026]图3是根据一些实施例的示例性服务器系统的框图。
[0027]图4A和4B图示根据一些实施例的示例性数据结构。
[0028]图5是图示根据一些实施例的邀请用户加入聊天会话的过程的流程图。
[0029]图6是图示根据一些实施例的邀请用户加入文档编辑会话的过程的流程图。
[0030]图7A、7B、7C和7D是根据一些实施例的、邀请用户加入聊天会话、文档编辑会话以及聊天/文档编辑会话的示例性示意截屏。
[0031]图8A、8B、8C和8D是根据一些实施例的、接收邀请的示例性示意截屏。
[0032]图9A、9B和9C是图示根据一些实施例的、邀请用户加入聊天会话的过程的流程图。
[0033]图1OA和IOB是图示根据一些实施例的、邀请用户加入文档编辑会话的过程的流程图。
[0034]在整个附图中,相同参考数字指代对应部分。
【具体实施方式】
[0035]描述了用于在聊天和文档编辑会话中的内联用户寻址的方法和系统。将参考某些实施例,在附图中图示了所述实施例的示例。虽然描述了特定实施例,然而,应当理解的是,这并不意在将权利要求限制在仅仅这些特定实施例。相反,权利要求意在覆盖所公开的实施例的替选、修改和等价物。
[0036]还应当理解的是,尽管用语“第一”、“第二”等可以在本文用来描述各种元素,然而,这些元素不应当受这些用语限制。这些用语仅仅用来区分不同元素。例如,第一联系人可以被称为第二联系人,以及类似地,第二联系人可以被称为第一联系人,其改变描述的含义,只要“第一联系人”的所有出现均被一致地重新命名,并且第二联系人的所有出现均被一致地重新命名。第一联系人和第二联系人两者都是联系人,并且他们不是同一联系人。
[0037]在本文所使用的术语仅出于描述特定实施例的目的,并且并不意在是对权利要求的限制。除非语境另外明确指出,否则,如在实施例和所附权利要求的描述中使用的,单数形式不定冠词和定冠词还意在包括复数形式。还应当理解的是,如在本文所使用的用语“和/或”是指并且包括相关联的列出的项中的一个或多个的任何及所有可能的组合。应当进一步理解的是,用语“包括”和/或“包含”当在本说明书中使用时,指定所述特征、完整物、步骤、操作、元素和/或组件的存在,但是不排除一个或多个其他特征、完整物、步骤、操作、元素、组件和/或其组群的存在或添加。
[0038]取决于语境,如在本文所使用的,用语“如果”可以被解释成意指“当(陈述的先决条件为真)时”或“在(陈述的先决条件为真)时”或“响应于确定(陈述的先决条件为真)”或“根据(陈述的先决条件为真的)确定”或“响应于检测到(陈述的先决条件为真)”。类似地,取决于语境,短语“如果确定[陈述的先决条件为真]”或“如果[陈述的先决条件为真]”或“当[陈述的先决条件为真]时”可以被解释成意指“在确定了(陈述的先决条件为真)时”或“响应于确定(陈述的先决条件为真)”或“根据(陈述的先决条件为真的)确定”或“在检测到(陈述的先决条件为真)时”或“响应于检测到(陈述的先决条件为真)”。
[0039]现将详细参考各种实施例,在附图中图示了所述实施例的示例。在下面的详细描述中,阐述了许多具体细节以提供全面理解。然而,可以在没有这些具体细节的情况下,实践本发明。在其他情况下,没有详细描述众所周知的方法、过程、组件和电路,以免不必要地使实施例的方面模糊不清。
[0040]如在本文所使用的,即时消息递送(頂)是使用执行在两个用户之间建立頂会话的软件应用的设备在该两个用户之间的实时通信。如在本文所使用的,聊天是使用执行为两个或多个用户与托管聊天会话或聊天室的设备建立连接的软件应用的设备在该两个或更多个用户之间的实时通信。为了通过IM或聊天进行通信,参与者维持与IM会话或聊天会话的持久连接。换句话说,为了通过IM或聊天进行通信,参与者的设备和聊天应用维持与托管建立聊天会话和/或IM会话的软件的设备的持久连接。通信是实时的,因为即刻或以可忽略的延迟交换通信。在一些实施例中,在两个或更多个用户之间的通信可以包括文本、语音、视频和图像。在一些实施例中,服务器托管IM会话或聊天会话,以及相应参与者连接到该服务器来进入相应頂/聊天会话。此外,可以通过诸如在本文更详细地描述的网络在用户之间转送聊天消息或即时消息。
[0041]图1是图示包括两个或更多个客户端设备102、通信网络104和服务器系统106的分布式系统100的框图。服务器系统106通过通信网络104被耦接到一个或多个客户端设备 102。
[0042]在一些实施例中,服务器系统106被实现为单个服务器,而在其他实施例中,其被实现为多个服务器的分布式系统。仅为了便于说明,在下面将服务器系统106描述为在单个服务器系统上来实现。
[0043]通信网络104可以是任何有线或无线局域网(LAN)和/或广域网(WAN),诸如内联网、外联网或因特网。通信网络104在客户端设备102和服务器系统106之间提供通信能力是足够的。在一些实施例中,通信网络104使用超文本传输协议(HTTP)和传输控制协议/网际协议(TCP/IP)来在设备或系统之间传输信息。HTTP允许客户端设备102访问通过通信网络104可用的各种资源。然而,各实施例不限于使用任何特定协议。
[0044]在一些实施例中,服务器系统106包括便于在服务器系统106和客户端102之间的通信的前端服务器110。在一些实施例中,前端服务器110被配置成接收和/或发送聊天内容、文档编辑命令、文档、文档内容、聊天、联系信息、应用、加入聊天会话的邀请、加入文档编辑会话的邀请以及加入“聊天+文档”编辑会话的邀请。如在本文所使用的,“聊天+文档”会话或聊天/文档会话是与文档编辑会话相关联的聊天会话,反之亦然。
[0045]在一些实施例中,服务器系统106包括SMTP/SMS接口 116,其便于在服务器系统106和网络104之间传送电子邮件消息和SMS消息。SMTP/SMS接口 116通过网络104将内联寻址模块114所生成的邀请(例如,聊天邀请、文档编辑邀请或聊天+文档编辑邀请)发送给相应客户端设备102。在一些实施例中,SMTP/SMS接口 116还通过网络104接收相应客户端设备102所发送的加入聊天的邀请、加入文档编辑会话的邀请以及加入聊天+文档会话的邀请。
[0046]在一些实施例中,服务器系统106包括存储聊天内容和/或协作文档的聊天/文档数据库120。在一些实施例中,聊天/文档数据库120还存储SMS消息和电子邮件消息。在本文更详细地描述了聊天内容和协作文档。在一些实施例中,聊天/文档数据库120是分布式数据库,其分布在服务器系统106内的多个服务器上。
[0047]在一些实施例中,服务器系统106包括为服务器系统106的用户存储地址簿(也被称为联系人列表或联系人数据库)的地址簿数据库118。在一些实施例中,地址簿数据库118是分布式数据库,其分布在服务器系统106内的多个服务器上。在本文更详细地描述了地址簿。
[0048]在一些实施例中,服务器系统106包括在线应用112,包括在服务器系统106上执行或被发送给客户端设备102以供执行的应用。在一些实施例中,响应于客户端请求,将在线应用112中的一个或多个发送给相应客户端102。在线应用112存储并访问地址簿数据库118和聊天/文档数据库120中的信息。在本文更详细地论述了在线应用112。
[0049]在一些实施例中,服务器系统106包括协助访问、更新以及修改地址簿数据库118和聊天/文档数据库120中的数据的内联寻址模块114。在一些实施例中,内联寻址模块114使用来自聊天/文档数据库120、地址簿数据库118的信息和/或从前端服务器110接收的聊天/文档内容来生成联系人建议、加入文档编辑会话的邀请、加入聊天会话的邀请以及加入聊天+文档编辑会话的邀请。在本文更详细地论述了内联寻址模块114。
[0050]在一些实施例中,服务器系统106包括创建并维持聊天会话、文档编辑会话和聊天+文档编辑会话的聊天/文档模块130。在一些实施例中,聊天/文档模块130存储并检索存储在聊天/文档数据库120中的信息。在本文更详细地论述了聊天/文档模块130。
[0051]在一些实施例中,用户在客户端设备102处与服务器系统106交互。客户端设备102可以是能够通过通信网络104连接到服务器系统106的任何适当的计算机设备,诸如计算机、台式计算机、膝上型计算机、平板设备、上网本、互联网服务亭、个人数字助理、移动电话、游戏设备、或能够与服务器系统106通信的任何其他设备。客户端设备102典型地包括一个或多个处理器、诸如闪存或硬盘驱动器的非易失性存储器以及显示器。客户端设备102还可以具有输入设备,诸如键盘和鼠标(如图2中所示)。
[0052]在一些实施例中,相应客户端设备102包括允许相应用户与其他客户端设备102的其他用户聊天的聊天应用122。可选地,相应客户端设备102包括允许相应用户对存储在客户端设备102或服务器系统106上的文档进行编辑的文档编辑应用122。在一些实施例中,相应客户端设备102包括用于同时聊天和编辑文档的聊天+文档编辑应用122。在本文更详细地论述了聊天应用112、文档编辑应用124和聊天+文档编辑应用。
[0053]在一些实施例中,相应客户端设备102包括用于请求、解析、显示、执行网页以及执行包括在网页中的应用的浏览器应用128。浏览器应用128可以是允许用户搜索、浏览和/或使用URL (统一资源定位符)或URI (统一资源标识符)所识别的资源(例如,网页和web服务)的任何应用。用语“URL”在本文用来意指文档的网络地址或位置。在该语境下,用语“文档”意指可以由web浏览器或其他应用使用的任何格式的任何文档或内容,包括但不限于:字处理文档、电子表格文档、演示文档、绘图、网页、文本、图像、音频、视频等。
[0054]图2是图示依据一些实施例的客户端设备102的框图。客户端设备102包括一个或多个处理单元(CPU) 202、一个或多个网络或其他通信接口 214、存储器206、以及用于使这些组件互连的一个或多个通信总线204。通信总线204可选地包括使系统组件互连并且控制在系统组件之间的通信的电路(有时被称为芯片集)。客户端设备102典型地包括用户接口,包含例如显示设备210以及可选地键盘和/或鼠标(或其他指示设备)212。存储器206包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;以及可以包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器206可选地包括位于远离CPU202的地方的一个或多个存储设备。存储器206或替选地在存储器206内的非易失性存储器设备包括计算机可读存储介质。在一些实施例中,存储器206或存储器206的计算机可读存储介质存储下述程序、模块和数据结构、或其子集:
[0055]?操作系统216,其包括用于处理各种基本系统服务和用于执行依赖硬件的任务的过程;
[0056].网络通信模块218,其被用于通过一个或多个通信网络接口 214 (有线的或无线的)和诸如因特网、其他广域网、局域网、城域网等的一个或多个通信网络将客户端设备102连接到服务器系统106和/或其他设备和计算机;
[0057].可选地,由客户端设备的一个或多个处理器202执行的一个或多个应用220 ;应用220典型地包括以下的一个或多个:聊天应用122、文档编辑应用124、聊天+文档编辑应用126和/或浏览器应用128 ;以及
[0058]?可选地,一个或多个网页,诸如带有嵌入式聊天应用的网页230、带有嵌入式文档编辑应用的网页232、和/或带有嵌入式聊天+文档编辑应用的网页234。
[0059]聊天应用122,如果被包括在客户端设备102中,则使客户端设备102的用户能够与在一个或多个其他客户端设备处的用户在聊天会话中进行实时通信。在一些实施例中,聊天应用122连接到服务器(例如,服务器系统106),以创建或加入聊天会话。
[0060]文档编辑应用124,如果被包括在客户端设备102中,则使客户端设备102的用户能够对位于客户端设备102上或位于远离客户端设备102的服务器系统106上(例如,在聊天/文档数据库118中)的文档进行编辑。在一些实施例中,文档编辑应用124与使多个用户能够同时编辑文档的在线文档编辑服务(例如,服务器系统102的聊天/文档模块130)协同工作。在一些实施例中,文档编辑应用124连接到服务器(例如,服务器系统106),以创建或加入文档编辑会话。
[0061]聊天+文档编辑应用126,如果被包括在客户端设备102中,则使客户端设备102的用户能够编辑文档并且与和客户端设备102的用户共同编辑文档的其他客户端设备的用户有聊天通信。换句话说,聊天+文档编辑应用126使客户端设备102的用户能够与其他客户端设备的用户同时参与和聊天会话相关联的文档编辑会话。使用聊天+文档编辑应用126来编辑的文档可以位于客户端设备102上或服务器系统106上(例如,在聊天/文档数据库120中)。在一些实施例中,聊天+文档编辑应用126与使多个用户能够同时编辑文档并且还同时进行聊天会话的在线文档编辑服务(例如,服务器系统102的聊天/文档模块130)协同工作。在一些实施例中,聊天+文档编辑应用126连接到服务器(例如,服务器系统106),以创建或加入聊天+文档编辑会话。
[0062]浏览器应用128 (例如,Google 的 Chrome、Mozilia 的 Firefox、Apple 的 Safar1、或Microsoft的Internet Explorer)可以是允许用户浏览并访问URL或URI所识别的资源(例如,网页和web服务)的任何应用。
[0063]带有应用的网页230、232和234执行与分别关于应用122、124和126所述的那些相似的操作。在一些实施例中,带有应用的网页230、232和234从远离客户端设备102的服务器(例如,服务器系统106)接收,并且由客户端设备102的一个或多个处理器202执行。嵌入在网页230、232和234中的应用可以以JavaScript? (Sun微系统公司的商标)、ECMAScript (对于其由欧洲计算机制造商协会国际发布的规范)、VBScript? (微软公司的商标)、C/C++、Java设备102和/或任何其他编程/脚本语言编写。在一些实施例中,嵌入在网页230、232和234中的应用部分在客户端设备102上执行并且部分在远离客户端设备102的服务器(例如,服务器系统106)上执行。
[0064]在一些实施例中,相应应用(例如,应用122、124、126或128)或嵌入在网页中的相应应用包括用来确定该相应应用是活动还是非活动的指令。在一些实施方式中,如果对应于应用的窗口当前被选择并且至少部分在客户端设备102的显示器210上的视图中,则该应用是活动的。典型地,如果对应于另一个应用的窗口是活动的,则应用是非活动的。
[0065]上面识别的元素中的每一个,当被包括在客户端设备102的相应实施例中时,被存储在前述存储器设备中的一个或多个中,以及模块或程序中的每一个对应于用于当由客户端设备102的一个或多个处理器(例如,CPU202)执行时执行上述功能的指令集。上面识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此,在各种实施例中,可以对这些模块的各种子集进行组合或另外重新安排。在一些实施例中,存储器206可以存储上面识别的模块和数据结构的子集。此外,存储器206可以存储在上面没有描述的额外模块和数据结构。
[0066]图2比作为在本文所述的实施例的结构示意更意在作为客户端设备的相应实施例的功能描述。在实践中并且如本领域技术人员所认识到的,可以对单独示出的项进行组合,并且可以将某些项分成多个部分或与图2中所示的不同来组织。
[0067]图3是图示依据一些实施例的服务器系统106的框图。服务器系统106包括一个或多个处理单元(CPU) 302、一个或多个网络或其他通信接口 308、存储器306、以及用于使这些组件互连的一个或多个通信总线304。通信总线304可选地包括使系统组件互连并且控制在系统组件之间的通信的电路(有时被称为芯片集)。存储器306包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;以及可以包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器306可选地包括远离CPU302的一个或多个存储设备。存储器306或替选地在存储器306内的非易失性存储器设备包括非暂时性计算机可读存储介质。在一些实施例中,存储器306或存储器306的计算机可读存储介质存储下述程序、模块和数据结构、或其子集:
[0068]?操作系统310,其包括用于处理各种基本系统服务和用于执行依赖硬件的任务的过程;
[0069].网络通信模块312,其被用于通过一个或多个通信网络接口 308 (有线的或无线的)和诸如因特网、其他广域网、局域网、城域网等的一个或多个通信网络将服务器系统106连接到客户端设备102和/或其他设备和计算机;
[0070]?下述内联寻址模块114 ;
[0071].存储文档322和聊天324的聊天/文档模块130,如在本文更详细地论述的;
[0072].聊天/文档数据库120存储文档322和聊天324 ;在本文更详细地论述了文档322和聊天324 ;
[0073]?地址簿数据库118,其包括服务器系统106的用户的地址簿340。各个地址簿340包括一个或多个联系人336。联系人336包括联系信息,诸如姓名、地址、电子邮件地址、电话号码、昵称和聊天屏幕名。
[0074]?应用112,其包括以下的一个或多个:带有聊天应用的网页330、带有文档编辑应用的网页332和带有聊天+文档编辑应用的网页334。
[0075]在一些实施例中,带有嵌入式应用的相应网页330、332或334响应于对对应应用的客户端请求或对对应文档的请求被发送给客户端设备102。存储在服务器系统106上的网页330、332和334对应于存储在客户端设备102处的网页230、232和234。在一些实施例中,嵌入在相应网页330、332或334中的应用由该网页被发送给的客户端设备102执行。在一些实施例中,嵌入在相应网页330、332、334中的应用,当在该网页(例如,响应于http请求)被发送给的客户端设备102处被执行时,与服务器系统106提供的在线文档编辑服务(例如,聊天/文档模块130)协同工作。如上所述,这些应用使多个用户能够同时编辑文档、进行聊天会话或两者。
[0076]如在下面更详细地论述的,内联寻址模块114检测嵌入请求、生成联系人建议、生成邀请、确定如何将邀请发送给用户、以及为存储在聊天/文档数据库118中的聊天324和文档322修改访问控制列表。
[0077]在一些实施方式中,内联寻址模块114检测存储在聊天/文档数据库118中的聊天内容和文档内容中的嵌入请求。在一些实施例中,内联寻址模块114在聊天内容和文档内容被服务器系统106接收时检测聊天内容和文档内容中的嵌入请求。如在本文更详细地论述的,嵌入请求是加入聊天会话或文档的邀请,用来邀请指定用户加入聊天会话、文档编辑会话或聊天+文档编辑会话。
[0078]在一些实施方式中,内联寻址模块114使用存储在地址簿数据库118中的联系信息以及服务器系统106所接收或存储在聊天/文档数据库120中的聊天/文档内容,来生成联系人建议。在一些实施例中,响应于在聊天内容或文档内容被服务器系统106接收时检测到在所述内容中的部分嵌入请求,来生成联系人建议。
[0079]在一些实施方式中,内联寻址模块114使用服务器系统106所接收或存储在聊天/文档数据库118中的聊天内容和文档内容,来生成加入聊天会话的邀请、加入文档编辑会话的邀请以及加入聊天+文档编辑会话的邀请。在一些实施例中,响应于检测到在聊天内容或文档内容中的嵌入请求,来生成邀请。
[0080]在一些实施方式中,内联寻址模块114对存储在聊天/文档数据库120中的聊天324或文档322的访问权限进行修改,以允许相应用户访问相应聊天和/或文档。在一些实施例中,关于聊天324或文档322分配给用户的访问权限由服务器系统106根据包含在嵌入请求中的信息来确定。在本文更详细地论述了对聊天和文档的访问权限。
[0081]在一些实施方式中,内联寻址模块114确定如何将邀请发送给用户。如在本文更详细地论述的,在各种实施例中,内联寻址模块114通过应用的活动窗口、应用的非活动窗口或通过电子邮件/SMS来发送邀请。
[0082]在本文进一步论述了内联寻址模块114所执行的操作。
[0083]在一些实施例中,聊天/文档模块130协助生成并维持聊天会话、文档编辑会话以及聊天+文档编辑会话。聊天/文档模块130为两个或更多个用户建立聊天会话(或聊天室)、接收并传送在用户之间的消息、以及将聊天会话的聊天内容存储入聊天/文档数据库120中。聊天/文档模块130建立文档编辑会话、创建文档、修改文档、向文档编辑会话的用户传送文档的至少部分、以及将文档存储在聊天/文档数据库120中。在一些实施例中,聊天/文档模块130对存储在聊天/文档120中的信息进行修改以将文档322与聊天324相关联。
[0084]上面识别的元素中的每一个可以被存储在服务器系统106的前述存储器设备中的一个或多个中,以及模块或程序中的每一个对应于用于执行上述功能的指令集。该指令集可以由一个或多个处理器(例如,CPU302)执行。上面识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此,在各种实施例中,可以对这些模块的各种子集进行组合或另外重新安排。在一些实施例中,存储器306可以存储上面识别的模块和数据结构的子集。此外,存储器306可以存储在上面没有描述的额外模块和数据结构。
[0085]尽管图3示出了服务器系统,然而,图3比作为在本文所述的实施例的结构示意更意在作为可以在一组服务器中出现的各种特征的功能描述。在实践中并且如本领域技术人员所认识到的,可以对单独示出的项进行组合,并且可使某些项分离。例如,在图3中单独示出的某些项(例如,操作系统310和网络通信模块312)可以在单个服务器上实现,以及单个项可以由一个或多个服务器实现。用来实现服务器系统106的服务器的实际数量以及如何在它们之间分配特征将随实施方式的不同而变化,并且可以部分取决于系统在高峰使用时段期间以及在平均使用时段期间必须处理的数据业务量。
[0086]图4A和4B图示了依据一些实施例的、存储在聊天/文档数据库120中的数据结构。依据一些实施例,图4A中所示的数据结构存储可以由客户端设备102的用户编辑的协作文档。依据一些实施例,图4B中所示的数据结构存储与在客户端设备102的两个或更多个用户之间的聊天会话相对应的聊天内容。在一些实施方式中,使用存储在这些数据结构中的信息来生成加入聊天会话、文档编辑会话和聊天+文档编辑会话的邀请。
[0087]图4A图示了根据一些实施例的、存储在聊天/文档数据库120中的用于存储文档的文档数据结构402。相应文档402-2包括元数据404和文档内容414。在一些实施例中,相应文档402的元数据404包括文档标识符(文档ID)406、访问控制列表408、文档类型410以及可选地,额外的信息。在一些实施例中,文档ID406唯一地识别相应文档402。在其他实施例中,文档ID406唯一地识别在数据库120内的目录(例如,文件目录)或其他文档集合中的相应文档402。文档类型410识别文档402-2的类型。在非限制性示例中,在数据库120中的相应文档402的文档类型410指示该相应文档402是字处理文档、电子表格文档、演示文档、绘图或网页。
[0088]在聊天/文档数据库120中的至少多个文档402是已由多个用户编辑、或具有使得能够通过多个用户进行编辑的访问权限的协作文档。在一些实施方式中,数据库120中的相应文档402是预定义文档类型集——诸如字处理文档、电子表格文档、演示文档、绘图或网页——中的一个的文档。在其他实施方式中,文档类型集包括其他文档类型(例如,C++程序)并且可选地将部分前述文档类型(例如,网页)排除在外。任何特定文档402的文档内容414与该文档的文档类型410 —致。
[0089]访问控制列表408包括用户列表以及其对相应文档402-2的相应访问权限。用户的关于文档402的访问权限确定用户关于文档402可以采取的动作。文档访问权限包括只读访问、读/写访问以及共享权限。具有对文档402的只读访问的用户能够查看文档402,但是不能对文档402作出任何修改。具有对文档402的读/写访问的用户既能够查看又能够编辑文档402。共享权限确定用户是否能够邀请另一个用户访问文档402以及可以被分配给受邀请的用户的访问权限。在非限制性示例中,具有共享权限的用户可以邀请另一个用户到文档,并且将只读访问权限分配给该用户。没有在相应文档402的访问控制列表408中列出的用户不能访问文档402。在一些实施例中,内联寻址模块114或聊天/文档模块130将用户添加到访问控制列表408。
[0090]在一些实施例中,元数据404包括与相应文档402-2相关联的一个或多个聊天422的相关联的聊天ID412。例如,可能已在聊天+文档编辑会话中至少部分编辑文档402-2。
[0091]现将注意力转移到图4B,其图示了根据一些实施例的、存储在聊天/文档数据库120中的用于存储与聊天/IM会话相关联的信息的聊天数据结构422,在本文有时被称为聊天记录422。每一个聊天记录422存储与在两个或更多个用户之间的聊天会话或IM会话相关联的信息。每一个聊天记录422包括聊天ID424、访问控制列表426和聊天内容430。相应聊天记录422的聊天ID424唯一地识别聊天会话。聊天内容430包括在与聊天记录422相对应的聊天中的参与者之间的通信/聊天历史(例如,文本、语音、视频和图像)。相应聊天记录422存储活动或非活动聊天会话的信息。在一些实施例中,非活动聊天会话是聊天会话已被终止或已超时(例如,没有通信达30分钟)的聊天会话。在一些实施例中,活动聊天会话是尚未被终止或尚未超时的聊天会话。非活动聊天会话可以变成活动聊天会话,反之亦然。
[0092]访问控制列表426包括用户列表以及其关于聊天记录422的访问权限。如果聊天记录422对应于非活动聊天会话,则相应用户的访问权限确定该相应用户是否能够访问包括聊天会话的聊天历史的聊天内容430。如果聊天记录422对应于活动聊天会话,则相应用户的访问权限确定该相应用户是否能够加入并参与该聊天会话。典型地,不在相应活动聊天的访问控制列表426上的用户不能加入对应的聊天会话。类似地,不在相应非活动聊天的访问控制列表426上的用户典型地不能访问在该非活动聊天的聊天记录422中的对应聊天内容430。在两种情况下,当以及如果用户被添加到对应的访问控制列表426时,用户获得对聊天会话或聊天历史的访问。在一些实施例中,用户由内联寻址模块114或聊天/文档模块130添加到访问控制列表408并且分配有访问权限。
[0093]在一些实施例中,相应聊天记录422-2包括与聊天记录422_2相关联的一个或多个文档的一个或多个相关联的文档ID428。例如,聊天记录422-2可以对应于聊天+文档编辑会话。
[0094]现将注意力转移到图5中的流程图,其图示了根据一些实施例的、使用内联用户寻址来邀请用户加入聊天会话的过程500。在聊天参与者的客户端102-1处,在聊天会话中接收来自该聊天参与者的聊天内容。(502)该聊天内容可以包括文本、语音、视频和图像的任何组合。在一些实施例中,如图7B中所示,聊天会话704与文档编辑会话712协同发生。例如,将聊天内容从聊天参与者的客户端102-1发送给服务器系统106(504)。在服务器系统106处,从聊天参与者的客户端102-1接收聊天参与者的聊天内容。(506)在该示例中,我们假设聊天参与者的聊天内容包括嵌入在聊天内容中的、用来邀请指定用户加入聊天会话的嵌入请求。在聊天内容内检测嵌入请求(508)。图7A示出了在聊天内容708内的嵌入请求702的示例。服务器系统106响应于检测到嵌入请求,向指定用户的客户端102-2发送聊天邀请。(510)指定用户的客户端102-2接收该邀请。(512)
[0095]取决于用户是否在使用连接到服务器系统106的应用以及什么应用窗口在用户的屏幕上是活动或非活动的,以多种不同方式向指定用户发送邀请。例如,如图8A中所示,如果受邀请的用户登录入连接到服务器系统106的聊天应用,则该受邀请的用户接收聊天通知800或在用户的屏幕上自动打开聊天窗口 802。在一些实施例中,指定用户通过连接到服务器系统106的应用的活动窗口来接收邀请。在非限制性示例中,如图SB和SC中所示,受邀请的用户通过电子邮件应用的活动窗口 812来接收邀请810。在一些实施例中,指定用户通过连接到服务器系统106的应用的非活动窗口被通知有邀请或接收邀请。例如,如图8D中所示,指定用户通过非活动web浏览器标签页811接收邀请810。在一些实施例中,非活动web浏览器标签页811显示邀请的通知,以及当用户选择该非活动窗口(例如,图8D的非活动web浏览器标签页811)时,在现在活动窗口中显示该邀请,如图8A、8B和8C中所示的示例中的。
[0096]在一些实施例中,以电子邮件消息或SMS消息将邀请发送给指定用户。例如,如果对于邀请针对的指定用户,不存在连接到服务器系统106的活动或非活动应用或窗口,则以电子邮件消息或SMS消息发送该邀请。
[0097]现将注意力转移到图6,其是图示根据一些实施例的、通过使用内联用户寻址来邀请用户加入文档编辑会话的过程600的流程图。在文档编辑参与者(其是创建和/或编辑文档的过程)的客户端设备102-1处,将来自在文档编辑会话中的参与者的文档编辑命令发送给服务器系统106。在一些实施例中,文档编辑命令包括以下的一个或多个:文本、绘图、图像、视频和声音以及对文本、绘图、绘图、声音和图像的改变。可选地,文档编辑命令包括以下的两个或更多个:文本、绘图、图像、视频和声音以及对文本、绘图、绘图、声音和图像的改变。
[0098]在一些实施例中,将来自与文档编辑会话相关联的聊天会话的聊天内容发送给服务器系统106。在服务器系统106处,接收来自文档编辑会话中的一个或多个用户的文档编辑命令。(604)从之接收编辑命令的一个或多个用户是被授权编辑文档编辑会话的相应文档的用户。(604)服务器系统106执行从该一个或多个用户接收的命令并且更新相应文档。(606)所接收的编辑命令包括文档文本,诸如被添加到文档的文档文本、从文档移除的文档文本、和/或正通过编辑命令修订的文档文本。(606)服务器系统106在相应文档文本内检测邀请指定用户访问该相应文档的嵌入请求。(608)例如,如图7C中所示,嵌入请求714在文档内容716内。更具体地,在该示例中,嵌入请求714在通过编辑命令(例如,“添加评论”或“编辑评论”命令)添加到文档的(在文档内容中的)评论文本内。换句话说,在所接收的命令中的文档文本包括待被包括在文档中的评论中的评论文本,以及该评论文本包括嵌入请求。服务器系统106响应于检测到该嵌入请求,将指定用户添加到相应文档的访问控制列表。(610)服务器系统106还响应于检测到该嵌入请求,向指定用户发送邀请。(612)指定用户的客户端102-2从服务器系统106接收该邀请。(614)以与关于图5所述的相似的方式向指定用户发送邀请。
[0099]在聊天会话中的内联用户寻址
[0100]如上所述,指导新用户加入聊天会话的对话流典型地采用数个步骤。在本文所述的使用内联用户寻址的方法使指导新用户加入聊天会话的对话流更容易。为了使用内联用户寻址来邀请指定用户加入聊天会话,邀请用户将嵌入请求输入聊天会话的内容中。通过将嵌入请求输入聊天内容中来邀请用户加入聊天会话便于邀请用户,因为该邀请用户不必离开聊天会话,也不使用与聊天会话相关联的任何菜单或菜单选项。并且,由于嵌入请求在聊天内容内,因此,向聊天会话的其他聊天参与者通知已邀请该用户加入聊天会话。嵌入请求还向受邀请的用户区分聊天内容的与受邀请的用户相关的部分。在加入聊天会话之后,受邀请的用户可以读取聊天内容的包含嵌入请求的部分来了解该用户被邀请加入聊天会话的原因。进一步,发送给受邀请的用户的聊天邀请可以包括聊天内容的用来帮助受邀请的用户了解其正被邀请加入聊天会话的原因的部分。结果,聊天参与者不必花费在询问受邀请的用户该受邀请的用户为其而被邀请的任何事情之前,向受邀请的用户重复或概述聊天对话的部分的时间。
[0101]图9A、9B和9C是图示依据一些实施例的、使用内联寻址来邀请用户加入聊天会话的方法900的流程图。在服务器系统106处执行方法900。
[0102]现将注意力转移到图9A,其图示了依据一些实施例的、使用内联寻址来邀请用户加入聊天的方法900。接收来自聊天会话中的参与者的聊天内容。(902)该聊天内容包括文本、音频内容、视频内容、绘图和图像的任何组合。从连接到服务器系统106的一个或多个客户端设备102接收该聊天内容。该聊天内容被存储在聊天/文档数据库120中的聊天数据结构422中。
[0103]在聊天内容内检测邀请指定用户加入聊天会话的嵌入请求。(904)在一些实施例中,嵌入请求由服务器系统106中的内联寻址模块114检测。在一些实施例中,嵌入请求包括后跟指定用户的用户标识符的预定义符号。(912)在非限制性示例中,如图7A中所示,嵌入请求702包括后跟用户标识符703 (例如,“Manny”)的预定义符号701 (例如,“@”)。预定义符号可以是一个或多个符号、一个或多个字母表字符、一个或多个数字、一个或多个图标或其任何组合。指定用户的用户标识符可以是为指定用户存储在相应聊天参与者的地址簿中的任何联系信息。地址簿被存储在地址簿数据库118中。在一些实施例中,从由以下组成的组中选择用户标识符:姓名、聊天用户名、昵称、电子邮件地址、电子邮件用户名(电子邮件用户名是电子邮件地址的在O符号之前的部分)以及电话号码。如上所述,通过将嵌入请求输入到聊天会话中来邀请用户加入聊天会话便于邀请用户,因为该邀请用户不必离开聊天会话的聊天窗口,并且不必使用与聊天会话相关联的菜单或菜单选项序列。并且,由于嵌入请求在聊天内容内,因此,向聊天会话的其他聊天参与者通知已邀请指定用户加入该聊天会话。
[0104]在一些实施例中,检测嵌入请求(904)包括:检测在聊天内容中的预定义符号,其后跟在该预定义符号之后输入的一个或多个字符;基于在预定义符号之后输入的一个或多个字符来识别一个或多个联系人建议;以及将该一个或多个联系人建议发送给客户端。(906)在一些实施例中,从相应参与者的地址簿获取联系人建议。(906)在一些实施方式中,每一个联系人建议由下述产生:将在预定义符号之后输入的一个或多个字符与存储在相应聊天参与者的地址簿中的相应联系人的联系信息相匹配。可选地,将在预定义符号之后输入的一个或多个字符与相应聊天参与者的地址簿中的相应联系人条目的任何字段中的信息(例如,名、姓、用户名、邮寄地址或邮寄地址的任何部分(例如,街道号码、街道名称、城市、州、邮编等)、电话号码、企业名称、职位名称、其他字段中的文本内容)相匹配。
[0105]在一些实施例中,当接收了在预定义符号之后的一个或多个字符的每一个连续字符时,重复识别一个或多个联系人建议和向客户端发送联系人建议的操作。(908)换句话说,在内联寻址模块114接收预定义符号之后,内联寻址模块114在接收每一个连续字符之后,重复地将新的用户标识符建议发送给聊天参与者的客户端102,直到聊天参与者选择建议或完整地输入用户标识符信息为止。将联系人建议发送给聊天参与者的客户端102,以协助聊天参与者输入嵌入请求。在一些实施例中,内联寻址模块114响应于检测到预定义符号和在该预定义符号之后输入的一个或多个字符来确定联系人建议。
[0106]在一些实施例中,在聊天会话中视觉地区分嵌入请求。在一些实施例中,响应于检测到相应参与者所输入的聊天内容中的嵌入请求,内联寻址模块114将用来视觉地区分嵌入请求的显示指令添加到聊天内容,然后,将该聊天内容发送给聊天会话的其他聊天参与者以显示。在一些实施例中,视觉地区分嵌入请求和在嵌入请求之前和/或之后的预定义量的聊天内容。在一些实施例中,通过粗体、加下划线、斜体、改变字形、添加图形指示符、闪光/闪烁、字体效果(例如,阴影、描画轮廓、浮雕和雕刻)、高亮或其任何组合,来视觉地区分嵌入请求和/或在嵌入请求之前和/或之后的预定义量的聊天内容。预定义符号、用户标识符以及在预定义符号之前和/或之后的预定义量的文本每一个可以被分别区分。换句话说,预定义符号、用户标识符以及预定义量的文本全部均可以以不同方式被视觉地区分。在非限制性示例中,在图7A中,用粗体视觉地区分嵌入请求702 “Let’s askiManny aboutpizza places”。在非限制性示例中,可以为预定义符号分配颜色红色,可以为用户标识符加下划线,以及用黄色高亮在预定义符号之前和/或之后的预定义量的聊天内容。视觉地区分嵌入请求提醒聊天会话中的其他参与者注意已邀请指定用户加入聊天会话。在一些实施例中,仅对邀请用户在视觉上区分嵌入请求。在一些其他实施例中,对所有聊天参与者在视觉上区分嵌入请求。可选地,将用来视觉地区分嵌入请求和/或另外聊天内容的指令与聊天内容一起保存在聊天/文档数据库120中。结果,查看活动或非活动聊天会话的聊天内容的用户将看到在视觉上区分了嵌入请求。
[0107]在一些实施例中,响应于检测到嵌入请求,内联寻址模块114将嵌入请求所指定的用户添加到指定用户被邀请加入的相应聊天会话(例如,聊天422)的访问控制列表(例如,访问控制列表426)。指定用户现在至少具有加入聊天会话的访问权限。在一些实施例中,在生成对应于嵌入请求的邀请之前,将指定用户添加到相应聊天会话的访问控制列表。替选地,响应于指定用户对邀请的接受,将该指定用户添加到相应聊天会话的访问控制列表。
[0108]在一些实施例中,将指定用户添加到与该指定用户被邀请加入的聊天会话相关联的一个或多个文档的访问控制列表。典型地,分配给指定用户的访问权限不大于请求邀请的用户的访问权限。因此,如果请求邀请的用户具有对与聊天会话相关联的文档的只读访问,则请求所指定的用户也将被分配有只读访问,并且不会被分配有对文档的读-写访问,除非指定用户在接收该邀请之前已具有对文档的读-写访问。
[0109]在一些实施方式中,文档的ACL可以被配置成阻止诸如编辑者或查看者的非所有者将其他人添加到文档的ACL。在这样的实施方式中,当非所有者试图将用来邀请的请求嵌入文档或与该文档相关联的聊天会话中时,文档管理系统或文档编辑器将采取补救动作。在一个示例中,补救动作是向非所有者显示他们没有足够权限来发送编辑或查看文档的邀请的警告。在另一个示例中,不启用在预定义符号之后的用户标识符的自动完成(参见图10A,操作1012),因而,劝阻非所有者不要试图输入完整的请求。替选地,在又另一个示例中,将非所有者的请求重定向到文档的所有者,以确定他们是否想要向指定用户发送邀请。
[0110]可选地,在一些实施方式中,具有向其他用户授予对文档的读或写访问的权限的用户(例如,文档所有者或共有者)可以通过将预定义访问参数——诸如RW (使能读-写访问)或RO (使能只读访问)——包括在嵌入请求中,来指定用来邀请的嵌入请求中的访问权限级别。在又另一个实施方式中(参见图7D中的示意截屏),当内联寻址模块114的自动完成特征向用户的客户端设备发送与部分输入的用户标识符或用户名一致的用户标识符或用户名列表722,以在客户端设备的用户界面中呈现时,紧挨着在列表722中的每一个姓名呈现功能可见元件724,其当被选择时,呈现允许用户选择待被授予给指定用户的文档访问级别(例如,读或读-写访问)的对话框(未示出)。替选地,仅在用户选择、或替选地将光标(未示出)悬停在上方或“右击”或另外引用列表722中的相应用户标识符或用户名时,才显示功能可见元件724。
[0111]现将注意力转移到图9B。在一些实施例中,对应于嵌入请求的邀请由内联寻址模块114响应于检测到嵌入请求而生成。响应于检测到嵌入请求,发送到指定用户的邀请。(910)在一些实施例中,邀请包括链接,其具有指定当指定用户选择或激活该链接时,待由指定用户的客户端(例如,在与指定用户相关联的客户端处的应用中)最初显示或呈现的聊天会话的部分的命令或位置参数。(916)在一些实施例中,当指定用户选择链接时,新的聊天窗口在指定用户所使用的客户端102处打开,并且该指定用户加入聊天会话。可选地,新的聊天窗口包括预先确定量的聊天内容/聊天历史。在一些实施例中,预先确定量的聊天内容/聊天历史包括嵌入请求。在指定用户的客户端处的新的聊天窗口中所显示的聊天内容/聊天历史对应于在指定用户加入聊天会话之前发生的聊天内容。在一些实施例中,链接包括将指定用户的聊天应用导航到聊天内容的包含嵌入请求的部分的指令。
[0112]邀请链接的示例是
[0113]<a[0114]href=www.docserverl23.com/iniine?ci=ChatID&loc=CLocID>Invite Text〈/a>[0115]其中www.docserverl23.com/inline识别服务器和服务,“ChatID”识别指定用户正被邀请加入的聊天,“CLocID”识别在当对链接的用户激活时待示出的ChatID聊天的聊天内容内的位置,以及“Invite Text”是邀请的文本,包括例如聊天会话的待向指定用户示出的部分。可选地,在聊天会话与文档编辑会话相关联的实施方式中,邀请链接进一步包括文档标识符和文档位置参数或命令,从而指定当激活邀请链接时待向指定用户显示的文档、以及在当激活邀请链接时待最初显示的文档或文档的一部分内的位置。
[0116]在一些实施方式中,邀请进一步包括聊天文本。(917)在非限制性示例中,如图7A中所示,在邀请中包括聊天文本“Let’s ask”和“about pizza places”。在一些实施例中,在邀请中包括在嵌入请求之前和/或之后的预定义量的聊天内容。例如,在邀请中包括在嵌入请求之前和/或之后的一些段落/句子/词。注意的是,当例如在对邀请的初始传输没有导致对邀请的接受之后重新发送邀请时,可以在邀请中包括在嵌入请求之后的聊天内容。在另一个示例中,当聊天内容紧接嵌入请求的组成之前以及在其期间,正以高速率(例如,以超过预定义阈值T的速率)促成聊天时,延迟对邀请的传输,直到在聊天会话中存在停顿达至少预定义时间段(例如,超过5秒的停顿)、或在嵌入请求之后的聊天内容量超过预定义阈值(例如,50或100个字符)为止。聊天文本当被包括在对指定用户的邀请中时,帮助指定用户/受邀请的用户了解其正被邀请加入聊天会话的原因。
[0117]在一些实施例中,对指定用户的邀请包括,当指定用户在线时,通过与下述中的一个相对应的在线信道发送邀请:对应于聊天会话的应用的活动窗口、聊天应用的非活动窗口、以及除对应于聊天会话的应用外的在线应用。(918)如图8A中所示,如果指定/受邀请的用户登录入被连接到服务器系统106的聊天应用(例如,聊天应用122或带有聊天应用的网页230),则该指定用户接收聊天通知800或聊天窗口 802自动出现在用户的聊天应用上。在一些实施例中,将聊天应用(例如,聊天应用122或带有聊天应用的网页230)集成在另一个应用内,诸如文档编辑应用(例如,文档编辑应用124或带有文档编辑应用的网页232)或电子邮件应用。
[0118]如果指定用户没有登录入聊天应用中,则该指定用户可以通过连接到服务器系统106的另一个应用(例如,浏览器128)的活动或非活动窗口来接收邀请。在非限制性示例中,如图8B和8C中所示,指定用户通过电子邮件应用的活动窗口 812来接收邀请810。在图8D中所示的另一个示例中,指定用户通过非活动的web浏览器标签页811来接收邀请810。在一些实施例中,非活动的web浏览器标签页811显示邀请的通知,并且在指定用户选择该非活动窗口(例如,图8D的非活动的web浏览器标签页811)时,在现在的活动窗口中的某处显示该邀请。
[0119]在一些实施例中,以电子邮件消息或SMS消息将邀请发送给指定用户。在一些实施方式中,仅在指定用户当前没在使用被连接到服务器系统106(即,具有与服务器系统106的实时或正在进行的连接)的任何应用时,才以电子邮件消息或SMS发送邀请。换句话说,指定用户如何接收邀请取决于该指定用户是否正在使用被连接到服务器系统106的一个或多个应用(例如,122、124、126、128、230、232和234)以及那些一个或多个应用中的什么应用窗口在指定用户的客户端102上是活动或非活动的。
[0120]响应于接收对邀请的接受,将聊天会话的聊天内容的至少部分发送给与指定用户相关联的客户端。(920)在一些实施例中,将在嵌入请求之前和/或之后的预定义量的聊天内容发送给客户端102。该聊天内容典型地在聊天窗口或其他聊天用户接口中显示、或另外通过客户端102向指定用户呈现(例如,通过文本到话音转换)。例如,将在嵌入请求之前和/或之后的一些段落/句子/词发送给指定用户的客户端102。发送给指定用户的客户端102以及通过客户端102向指定用户呈现的聊天内容帮助指定用户了解聊天参与者当前正聊的内容。
[0121]现将注意力转移到图9C。在一些实施例中,从指定用户接收新的聊天内容,并且将该新的聊天内容发送给聊天会话中的参与者。(922)换句话说,指定用户是聊天会话的参与者,并且具有向聊天会话的其他参与者发送聊天内容的足够访问权限。
[0122]在一些实施例中,根据从参与者接收的命令对与聊天会话相对应的文档进行编辑。(924)换句话说,聊天会话与另外被称为聊天+文档编辑会话的文档编辑会话相关联。在一些实施例中,在文档编辑会话内检测邀请指定用户加入聊天+文档编辑会话的嵌入请求。在一些实施例中,响应于检测到嵌入请求,将指定用户添加到文档的访问控制列表以使该指定用户能够访问文档。(924)在一些实施例中,在邀请被生成并发送给指定用户之前,将该指定用户添加到文档和聊天的访问控制列表。然而,在一些实施例中,仅当在访问控制列表中尚未至少以与邀请相关联的访问级别列出指定用户时,才对文档的访问控制列表进行修改。替选地,如果在访问控制列表中尚未至少以与邀请相关联的访问级别列出指定用户,则响应于指定用户对邀请的接受,将指定用户添加到文档的访问控制列表。可选地,检测嵌入请求、修改文档的访问控制列表以及生成邀请的操作由服务器系统106的内联寻址模块114来执行。
[0123]在一些实施例中,文档是字处理文档、电子表格文档、演示文档、绘图或网页。(926)在一些实施例中,邀请包括到正被编辑的文档的链接。(930)可选地,该链接包括指定当指定用户选择或激活该链接时指定用户的客户端最初显示或呈现的文档的部分的命令或位置参数。(930)在一些实施例中,该链接包括在与文档的包含嵌入请求的部分相对应的位置处打开该文档的一个或多个指令。结果,当指定用户使用该链接来访问文档时,该指定用户最初查看文档的包含嵌入请求的部分。
[0124]可选地,链接中的指令是在用户选择或另外激活该链接时发送给服务器系统106的指令。可选地,链接中的指令是指示指定用户的文档编辑应用(例如,文档编辑应用124或带有文档编辑应用的网页232)打开文档并且向指定用户显示或另外呈现文档的包含嵌入请求的部分的指令。
[0125]在文档编辑:会话中的内联用户寻址
[0126]如上所述,指导新用户加入文档编辑会话典型地采用数个步骤。在本文所述的使用内联用户寻址的方法使指导新用户加入文档编辑会话更容易。为了使用内联用户寻址来邀请指定用户加入文档编辑会话,邀请用户将嵌入请求输入与文档编辑会话相关联的文档的内容中。通过将嵌入请求输入文档内容中来邀请用户加入文档编辑会话便于邀请用户,因为该邀请用户不必使用与文档编辑会话相关联的任何菜单选项。并且,由于嵌入请求在文档内容内,因此,向文档编辑会话的其他文档编辑参与者通知已邀请该指定用户加入文档编辑会话。嵌入请求在文档内的位置还用作为标记,其在将指定用户定向到文档的包含嵌入请求的部分时可以是有用的。在加入文档编辑会话之后,指定用户可以读取文档内容的包含嵌入请求的部分来了解该用户被邀请加入文档编辑会话的原因。
[0127]替选地,在聊天+文档编辑会话中,当在与文档编辑会话相关联的聊天会话中嵌入请求时,作为结果的邀请包括用于向用户呈现创建了嵌入请求的用户在创建嵌入请求时正查看的文档的相同部分的导航命令。例如,如果在文档中存在与创建了嵌入请求的用户相关联的光标位置,则将该光标位置与嵌入请求一起转送给服务器系统106,其包括在邀请中的前述对应的导航命令。
[0128]可选地,发送给指定用户的文档邀请包括文档内容的用来帮助指定用户了解其正被邀请加入文档编辑会话的原因的部分。可选地,邀请包括用于在与指定用户相关联的客户端处的应用中定位或渲染文档,以向指定用户最初呈现文档的包含嵌入请求或与嵌入请求相关联的部分的命令(例如,导航命令)。结果,文档编辑参与者不必花费时间将指定用户定向到文档的相关部分。
[0129]图1OA和IOB描绘了依据一些实施例的、使用内联寻址来邀请用户加入文档编辑会话的方法1000的流程图。方法1000由服务器系统106执行。
[0130]接收来自在文档编辑会话中的一个或多个用户的文档编辑命令。(1002)从之接收编辑命令的一个或多个用户被授权对文档编辑会话的相应文档进行编辑。(1002)典型地,文档具有列出被授权访问该文档的用户的访问控制列表(ACL)。前述用户被认为“在”文档的ACL “上”。从连接到服务器系统106的一个或多个客户端设备102接收文档编辑命令。所接收的编辑命令包括关于文档的文档内容,诸如正被添加到文档的文档文本、正从文档移除的文档文本、和/或正通过编辑命令修订的文档文本。(1006)
[0131]在一些实施例中,正被编辑的文档是字处理文档、电子表格文档、演示文档、绘图文档或网页。(1004)文档编辑命令可以是与编辑字处理文档、电子表格文档、演示文档、绘图文档或网页相关联的任何命令。
[0132]在一些实施例中,在文档编辑命令中的文档内容包括文本、音频内容、视频内容、绘图和图像的任何组合。在一些实施例中,文档编辑命令包括用来添加、修改和/或删除文本、格式化、声音、动画、绘图、视频和图像的命令的任何组合。在非限制性示例中,文档编辑命令可以包括文本和用来使文本加粗和缩进的一个或多个命令。在另一个非限制性示例中,文档编辑命令可以包括用来修改文档中的绘图的命令(例如,改变颜色、添加新的元素、删除元素以及修改绘图的元素的位置)。在一些实施例中,根据从用户接收的命令来对文档进行编辑。(1006)在一些实施例中,将文档存储在聊天/文档数据库120中。在一些实施例中,内联寻址模块114接收文档编辑命令,并且响应于接收文档编辑命令,对聊天/文档数据库120中的相应文档进行编辑。
[0133]在所接收的文档编辑命令中的文档文本内检测用来邀请指定用户访问相应文档的嵌入请求。(1008)在一些实施例中,嵌入请求由内联寻址模块114检测。在一些实施例中,嵌入请求包括后跟指定用户的用户标识符的预定义符号。(1010)在非限制性示例中,如图7C中所示,嵌入请求714位于用户创建的评论715 (在图7C中由虚线框和标签“Comment:”所指示)内,并且包括后跟用户标识符720 (例如,“Manny”)的预定义符号718(例如,“O”)。换句话说,在包括待被包括在用户创建的评论中的评论文本的所接收的文档编辑命令内检测嵌入请求。
[0134]在一些实施方式中标记嵌入请求的开始的预定义符号可以是一个或多个符号、一个或多个字母表字符、一个或多个数字、一个或多个图标或其任何组合。用户标识符可以是为指定用户存储在相应文档编辑参与者的地址簿中的任何标识符(典型地被称为用户名)。在一些实施方式中,地址簿被存储在地址簿数据库118中。在一些实施例中,从由以下组成的组中选择用户标识符:姓名、聊天用户名、昵称、电子邮件地址、电子邮件用户名以及电话号码。通过将嵌入请求输入文档内容中来邀请用户访问文档(或加入文档编辑会话)便于邀请用户,因为该邀请用户不必使用与文档编辑会话相关联的任何菜单或菜单选项。显示在文档内的嵌入请求还用作为针对其他文档编辑参与者(如果有的话)、已邀请指定用户到文档的通知。典型地,嵌入请求在文档中的位置对应于邀请用户想要指定用户在接受加入文档编辑会话的邀请时最初查看的文档的部分。
[0135]在一些实施例中,检测嵌入请求(1008)包括:检测文档文本内容中的预定义符号,其后跟在预定义符号之后输入的一个或多个字符;基于在预定义符号之后输入的一个或多个字符来识别一个或多个联系人建议;以及向客户端发送一个或多个联系人建议。(1012)参见例如图7D,其示出了基于在文档中的评论715中的、后跟字母“M”的预定义符号718 (例如,at符号@)的用户输入的联系人建议列表722。图7D类似于图7C,除了图7D中的示意截屏示出部分输入的用户标识符(“M”)和对应的联系人建议列表722,而不是图7C中所示的用户标识符720之外。一个或多个联系人建议的识别有时被称为自动完成、或对用户标识符的自动完成。在一些实施例中,联系人建议来自相应参与者的地址簿。(1012)在一些实施方式中,每一个联系人建议由下述产生:将在预定义符号之后输入的一个或多个字符与存储在相应聊天参与者的地址簿中的相应联系人的联系信息相匹配。可选地,将在预定义符号之后输入的一个或多个字符与相应聊天参与者的地址簿中的相应联系人条目的任何字段中的信息(例如,名、姓、用户名、邮寄地址或邮寄地址的任何部分(例如,街道号码、街道名称、城市、州、邮编等)、电话号码、企业名称、职位名称、其他字段中的文本内容)相匹配。
[0136]在一些实施例中,当接收了在预定义符号之后的一个或多个字符的每一个连续字符时,重复对一个或多个联系人建议的识别和向客户端发送联系人建议。(1013)换句话说,在内联寻址模块114接收预定义符号之后,内联寻址模块114在接收每一个连续字符之后,重复地将新的用户标识符建议发送给聊天参与者的客户端102,直到聊天参与者选择建议或完整地输入用户标识符信息为止。在图7C和7D中所示的示例中,当进行了对建议的用户标识符的用户选择或对用户标识符的完整输入时,用户界面将从图7D中所示的示例转变回成图7C中所示的示例。将联系人建议发送给文档编辑参与者的客户端102,以协助参与者输入嵌入请求。在一些实施例中,内联寻址模块114响应于接收预定义符号和在预定义符号之后输入的一个或多个字符,而确定联系人建议。
[0137]在一些实施例中,响应于检测到嵌入请求,在文档中视觉地区分嵌入请求。例如,响应于检测到相应文档编辑参与者所输入的文档内容中的嵌入请求,内联寻址模块114将用来视觉地区分嵌入请求的显示指令添加到该文档内容。在一些实施例中,视觉地区分嵌入请求和在嵌入请求之前和/或之后的预定义量的文档内容。视觉地区分嵌入请求和可选地预定义量的文档内容的方式是与在上面关于视觉地区分聊天内容中的嵌入请求所述的相似的方式。在一些实施例中,用来视觉地区分嵌入请求和/或另外文档内容的指令被保存在相应文档中或与相应文档一起被保存。结果,在一些实施例中,在输入嵌入请求之后查看文档的相应用户将看到视觉地区分了嵌入请求。视觉地区分嵌入请求帮助提醒文档的其他用户(如果有的话)注意已邀请新用户到文档。视觉地区分的嵌入请求还帮助指定用户识别文档的可能与邀请有关的部分。
[0138]现将注意力转移到图10B。在一些实施例中,内联寻址模块114响应于检测到在用于编辑相应文档的命令中的嵌入请求来生成对应于嵌入请求的邀请。(1014)此外,一些实施例,响应于检测到嵌入请求,内联寻址模块114将嵌入请求所指定的用户添加到相应文档(例如,402 )的访问控制列表(例如,访问控制列表408 ),从而授予指定用户对相应文档的访问。在一些实施例中,根据嵌入请求中的一个或多个命令来分配指定用户的访问权限。在一些实施例中,如果文档编辑会话具有相关联的聊天会话,则将指定用户添加到相关联的聊天会话的访问控制列表。在一些实施例中,在生成和/或发送对应于嵌入请求的邀请之前,将指定用户添加到相应文档的访问控制列表。替选地,响应于指定用户对邀请的接受,将指定用户添加到相应文档的访问控制列表(以及可选地到相关联的聊天会话的访问控制列表,如果有的话)。然而,在这些实施例的至少一些中,仅当在访问控制列表中尚未至少以与邀请相关联的访问级别列出指定用户时,才将指定用户添加到相应文档的访问控制列表(以及可选地到相关联的聊天会话的访问控制列表,如果有的话)。
[0139]在一些实施例中,邀请包括到正被编辑的文档的链接。(1016)可选地,该链接包括指定当指定用户选择或激活该链接时指定用户的客户端最初显示或呈现的文档的部分的命令或位置参数。(1017)在一些实施例中,当指定用户选择该链接时,新的文档窗口打开,并且显示该文档。在一些实施例中,该链接包括向指定用户的文档编辑应用(例如,文档编辑应用124或带有文档编辑应用的网页232)指定当打开文档时最初显示文档的哪个部分的一个或多个命令。结果,当用户选择该链接时,新的文档窗口打开,并且显示文档的包含嵌入请求的部分。
[0140]文档编辑邀请链接的示例是
[0141]<a href=www.docserverl23.com/docs?di=DocID&loc=LocID>Invite Text〈/a>
[0142]其中www.docserverl23.com/docs识别服务器系统和文档编辑服务,“DocID”识别指定用户正被邀请进行编辑、查看或共同写的文档,“LocID”是识别在当对链接的用户激活时待示出的DocID文档的文档内的位置的参数或命令,以及“Invite Text”是邀请的文本。可选地,邀请文本包括指定用户正被邀请进行编辑、查看或共同写的文档的部分。在一些实施方式中,LocID识别在文档内容内的评论,其中所识别的评论是包含用来邀请指定用户的嵌入请求的评论。在一些其他实施方式中,LocID识别在文档中的、在用来邀请指定用户的嵌入请求处、与所述嵌入请求相邻或基本上相邻(例如,具有预定义编辑距离)的位置。
[0143]在一些实施例中,向指定用户发送邀请包括,当指定用户在线时,通过与下述中的一个相对应的在线信道发送邀请:对应于聊天会话的应用的活动窗口、对应于文档编辑会话的应用的活动窗口、文档编辑应用的非活动窗口、以及除对应于文档编辑会话的应用外的在线应用。(1018)在一些实施例中,内联寻址模块114确定指定用户如何接收邀请。如图8A中所示,如果用户正在使用被连接到服务器系统106的聊天应用(例如,聊天应用122或带有聊天应用的网页230),则受邀请的用户接收聊天通知800或在用户的应用上自动打开聊天窗口 802。在一些实施例中,将聊天应用集成在另一个应用内,诸如文档编辑应用(例如,聊天+文档编辑应用126或带有聊天+文档编辑应用的网页234)或电子邮件应用。如果指定用户没有登录入聊天应用中,则指定用户可以通过被连接到服务器系统106的另一个应用(例如,浏览器128)的活动或非活动窗口来接收邀请。在非限制性示例中,如图SB和8C中所示,指定用户通过电子邮件应用的活动窗口 812来接收邀请810。在图8D中所示的另一个示例中,指定用户通过非活动的web浏览器标签页811来接收邀请810。在一些实施例中,非活动的web浏览器标签页811显示邀请的通知,并且在指定用户选择该非活动窗口(例如,图8D的非活动的web浏览器标签页811)时,在新的活动窗口中的某处显示该邀请。
[0144]如在上面关于方法900所说明的,在一些实施例中,以电子邮件消息或SMS消息将邀请发送给指定用户。在一些实施方式中,仅在指定用户当前没在使用被连接到服务器系统106 (即,具有与服务器系统106的实时或正在进行的连接)的任何应用时,才以电子邮件消息或SMS发送邀请。换句话说,指定用户如何接收邀请取决于该指定用户是否正在使用被连接到服务器系统106的一个或多个应用(例如,122、124、126、128、230、232和234)以及那些一个或多个应用中的什么应用窗口在指定用户的客户端102上是活动或非活动的。
[0145]在一些实施例中,邀请包括文档内容。更具体地,在一些实施例中,在邀请中包括在嵌入请求之前和/或之后的预定义量的文档内容。例如,在邀请中包括在嵌入请求之前和/或之后的一些段落/句子/词。在非限制性示例中,在图7C中,可以在邀请中包括文档文本(例如,“do these dates look correct to you?”)。文档内容当被包括在到指定用户的邀请中时,帮助指定用户/受邀请的用户了解其正被邀请加入文档编辑会话的原因。
[0146]在一些实施例中,对于与文档相关联的聊天对话,从被授权访问文档的一个或多个用户接收聊天内容。(1020)换句话说,聊天对话与另外被称为聊天+文档编辑会话的文档编辑会话相关联。从被连接到服务器系统106的一个或多个客户端设备102接收聊天内容和/或文档内容。在一些实施例中,在文档编辑会话内检测用来邀请指定用户加入文档编辑会话的嵌入请求。可选地,将嵌入请求添加到聊天对话,并且将聊天对话的包括嵌入请求的至少部分发送给被授权访问文档的用户中的一个或多个。(1020)在一些实施例中,还将到文档的对应于嵌入请求的部 分的链接添加到聊天对话。(1022)
[0147]在一些实施例中,响应于接收指定用户对邀请的接受,服务器系统将相应文档的至少部分发送给与指定用户相关联的客户端。(1024)
[0148]在一些实施例中,从指定用户接收新的文档编辑命令,并且根据该新的文档编辑命令对文档进行编辑。换句话说,在接受邀请之后,指定用户变成文档编辑会话的参与者,并且具有编辑文档的足够访问权限。
[0149]在本文所述的方法中的每一个可以由被存储在非暂时性计算机可读存储介质中并且由一个或多个服务器(例如,服务器系统106)的一个或多个处理器执行的指令管控。图9A、9B、9C、10A和10B中所示的操作中的每一个可以对应于存储在计算机存储器或非暂时性计算机可读存储介质中的指令。
[0150]出于说明目的,已参考特定实施例描述了前面的描述。然而,在上面的说明性论述并不意在穷尽或将权利要求限制在所公开的精确形式。鉴于上面的教导,许多修改和变化是可能的。选择并描述了实施例,以最佳说明本发明的原理及其实际应用,从而使本领域技术人员能够以适于预期的特定用途的各种修改,最佳利用本发明和各种实施例。
【权利要求】
1.一种管理聊天会话的方法,包括: 在具有一个或多个处理器和存储待由所述一个或多个处理器执行以执行所述方法的一个或多个程序的存储器的服务器处: 从在聊天会话中的参与者接收聊天内容; 在所述聊天内容内,检测邀请指定用户加入所述聊天会话的嵌入请求;以及 响应于检测到所述嵌入请求,向所述指定用户发送邀请。
2.根据权利要求1所述的方法,进一步包括:响应于从所述指定用户接收对所述邀请的接受,将所述聊天会话的所述聊天内容的至少部分发送给与所述指定用户相关联的客户端。
3.根据任何前面权利要求所述的方法,其中所述嵌入请求包括后跟所述指定用户的用户标识符的预定义符号。
4.根据任何前面权利要求所述的方法,其中所述检测包括:检测所述聊天内容中的预定义符号,所述预定义符号后跟在所述预定义符号之后输入的一个或多个字符;基于在所述预定义符号之后输入的所述一个或多个字符来识别一个或多个联系人建议,其中所述联系人建议来自相应参与者的地址簿;以及向所述客户端发送所述一个或多个联系人建议。
5.根据权利要求4所述的方法,其中所述对一个或多个联系人建议的识别和所述对所述联系人建议的发送在接收了在所述预定义符号之后的所述一个或多个字符的每一个连续字符时被重复。
6.根据任何前面权利要求所述的方法,进一步包括, 从所述指定用户接收新的聊天内容,并且将所述新的聊天内容发送给所述聊天会话中的所述参与者。
7.根据任何前面权利要求所述的方法,其中所述邀请包括当被所述指定用户激活时,向所述指定用户提供在与所述指定用户相关联的所述客户端处的应用中的对所述聊天会话的访问的链接。
8.根据权利要求7所述的方法,其中到所述指定用户的所述邀请包括来自所述聊天会话的聊天文本。
9.根据权利要求7所述的方法,其中向所述指定用户发送所述邀请包括,当所述指定用户在线时,通过与以下中的一个相对应的在线信道发送所述邀请:与所述聊天会话相对应的应用的活动窗口、以及所述应用的非活动窗口、以及除与所述聊天会话相对应的所述应用外的在线应用。
10.根据任何前面权利要求所述的方法,包括: 根据从所述参与者接收的命令对与所述聊天会话相对应的文档进行编辑;以及 响应于检测到所述嵌入请求,将所述指定用户添加到所述文档的访问控制列表以使所述指定用户能够访问所述文档。
11.根据权利要求10所述的方法,其中所述文档从由以下组成的组中选择:字处理文档、电子表格文档、演示文档、绘图和网页。
12.根据权利要求10所述的方法,其中所述邀请包括到在被编辑的所述文档的链接,所述链接包括指定当所述指定用户选择或激活所述链接时最初显示或呈现的所述文档的部分的命令或位置参数 。
13.一种存储被配置供服务器系统的一个或多个处理器执行的一个或多个程序的非暂时性计算机可读存储介质,所述一个或多个程序包括: 用于从在聊天会话中的参与者接收聊天内容的指令; 用于在所述聊天内容内,检测邀请指定用户加入所述聊天会话的嵌入请求的指令;以及 用于通过向所述指定用户发送邀请,来对检测到所述嵌入请求作出响应的指令。
14.根据权利要求13所述的计算机可读存储介质,其中所述一个或多个程序进一步包括用于响应于从所述指定用户接收对所述邀请的接受,将所述聊天会话的所述聊天内容的至少部分发送给与所述指定用户相关联的客户端的指令。
15.根据权利要求13或14所述的计算机可读存储介质,其中所述嵌入请求包括后跟所述指定用户的用户标识符的预定义符号。
16.根据权利要求13、14或15所述的计算机可读存储介质,其中用于检测的所述指令包括用于以下的指令:检测所述聊天内容中的预定义符号,所述预定义符号后跟在所述预定义符号之后输入的一个或多个字符;基于在所述预定义符号之后输入的所述一个或多个字符来识别一个或多个联系人建议,其中所述联系人建议来自相应参与者的地址簿;以及向所述客户端发送所述一个或多个联系人建议。
17.根据权利要求16所述的计算机可读存储介质,其中所述一个或多个程序包括用于以下的指令:在接收了在所述预定义符号之后的所述一个或多个字符的每一个连续字符时,重复所述对一个或多个联系人建议的识别和所述对所述联系人建议的发送。
18.根据任何权利要求13-17所述的计算机可读存储介质,其中所述一个或多个程序进一步包括用于从所述指定用户接收新的聊天内容并且将所述新的聊天内容发送给所述聊天会话中的所述参与者的指令。
19.根据任何权利要求13-18所述的计算机可读存储介质,其中所述邀请包括当被所述指定用户激活时,向所述指定用户提供在与所述指定用户相关联的所述客户端处的应用中的对所述聊天会话的访问的链接。
20.根据权利要求19所述的计算机可读存储介质,其中到所述指定用户的所述邀请包括来自所述聊天会话的聊天文本。
21.根据权利要求19所述的计算机可读存储介质,其中向所述指定用户发送所述邀请包括,当所述指定用户在线时,通过与以下中的一个相对应的在线信道发送所述邀请:与所述聊天会话相对应的应用的活动窗口、以及所述应用的非活动窗口、以及除与所述聊天会话相对应的所述应用外的在线应用。
22.根据任何权利要求13-21所述的计算机可读存储介质,包括: 根据从所述参与者接收的命令对与所述聊天会话相对应的文档进行编辑;以及 响应于检测到所述嵌入请求,将所述指定用户添加到所述文档的访问控制列表以使所述指定用户能够访问所述文档。
23.根据权利要求22所述的计算机可读存储介质,其中所述文档从由以下组成的组中选择:字处理文档、电子表格文档、演示文档、绘图和网页。
24.根据权利要求22所述的计算机可读存储介质,其中所述邀请包括到在被编辑的所述文档的链接,所述链接包括指定当所述指定用户选择或激活所述链接时最初显示或呈现的所述文档的部分的命令或位置参数。
25.—种服务器系统,包括: 一个或多个处理器;以及 存储器,其存储一个或多个程序以供所述一个或多个处理器执行,所述一个或多个程序包括: 用于从在聊天会话中的参与者接收聊天内容的指令; 用于在所述聊天内容内检测邀请指定用户加入所述聊天会话的嵌入请求的指令;以及 用于通过向所述指定用户发送邀请来对检测到所述嵌入请求作出响应的指令。
26.根据权利要求25所述的系统,其中所述一个或多个程序进一步包括用于响应于从所述指定用户接收对所述邀请的接受将所述聊天会话的所述聊天内容的至少部分发送给与所述指定用户相关联的客户端的指令。
27.根据权利要求25或26所述的系统,其中所述嵌入请求包括后跟所述指定用户的用户标识符的预定义符号。
28.根据权利要求25-27中的任何一个所述的系统,其中用于检测的所述指令包括用于以下的指令:检测所述聊天内容中的预定义符号,所述预定义符号后跟在所述预定义符号之后输入的一个或多个字符;基于在所述预定义符号之后输入的所述一个或多个字符来识别一个或多个联系人建议,其中所述联系人建议来自相应参与者的地址簿;以及向所述客户端发送所述一个或多个联系人建议。
29.根据权利要求25所述的`系统,其中所述一个或多个程序包括用于以下的指令:在接收了在所述预定义符号之后的所述一个或多个字符的每一个连续字符时,重复所述对一个或多个联系人建议的识别和所述对所述联系人建议的发送。
30.根据任何权利要求25-29所述的系统,其中所述一个或多个程序进一步包括用于从所述指定用户接收新的聊天内容并且将所述新的聊天内容发送给所述聊天会话中的所述参与者的指令。
31.根据任何权利要求25-30所述的系统,其中所述邀请包括当被所述指定用户激活时向所述指定用户提供在与所述指定用户相关联的所述客户端处的应用中的对所述聊天会话的访问的链接。
32.根据权利要求31所述的系统,其中到所述指定用户的所述邀请包括来自所述聊天会话的聊天文本。
33.根据权利要求31所述的系统,其中向所述指定用户发送所述邀请包括,当所述指定用户在线时,通过与以下中的一个相对应的在线信道发送所述邀请:与所述聊天会话相对应的应用的活动窗口、以及所述应用的非活动窗口、以及除与所述聊天会话相对应的所述应用外的在线应用。
34.根据任何权利要求25-33所述的系统,包括: 根据从所述参与者接收的命令对与所述聊天会话相对应的文档进行编辑;以及 响应于检测到所述嵌入请求,将所述指定用户添加到所述文档的访问控制列表以使所述指定用户能够访问所述文档。
35.根据权利要求34所述的系统,其中所述文档从由以下组成的组中选择:字处理文档、电子表格文档、演示文档、绘图和网页。
36.根据权利要求34所述的系统,其中所述邀请包括到在被编辑的所述文档的链接,所述链接包括指定当所述指定用户选择或激活所述链接时最初显示或呈现的所述文档的部分的命令或位置参数。
37.一种管理协作文档编辑的方法,包括: 在具有一个或多个处理器和存储待由所述一个或多个处理器执行以执行所述方法的一个或多个程序的存储器的服务器处: 从在文档编辑会话中的一个或多个用户接收文档编辑命令,其中所述一个或多个用户被授权对所述文档编辑会话的相应文档进行编辑; 根据从所述用户接收的所述命令,对所述相应文档进行编辑,所接收的命令包括关于所述文档的文档文本; 在所接收的命令中的所述文档文本内,检测邀请指定用户访问所述相应文档的嵌入请求;以及 响应于检测到所述嵌入请求,向所述指定用户发送邀请,并且将所述指定用户添加到所述相应文档的访问控制列表以使所述指定用户能够访问所述文档。
38.根据权利要求37所述的方法,其中所述文档从由以下组成的组中选择:字处理文档、电子表格文档、演示文档、绘图和网页。
39.根据权利要求37或38所述的方法,其中所述嵌入请求包括后跟所述指定用户的用户标识符的预定义符号。
40.根据权利要求37或38所述的方法,其中所接收的命令中的所述文档文本包括待被包括在所述文档中的评论中 的评论文本,以及所述评论文本包括所述嵌入请求。
41.根据权利要求37、38和40中的任何一个所述的方法,其中所述检测包括检测所接收的命令中的所述文档文本中的预定义符号,所述预定义符号后跟在所述预定义符号之后输入的一个或多个字符;基于在所述预定义符号之后输入的所述一个或多个字符来识别一个或多个联系人建议,其中所述联系人建议来自相应参与者的地址簿;以及向所述客户端发送所述一个或多个联系人建议。
42.根据权利要求41所述的方法,其中所述对一个或多个联系人建议的识别和所述对所述联系人建议的发送在接收了在所述预定义符号之后的所述一个或多个字符的每一个连续字符时被重复。
43.根据权利要求37-42中的任何一个所述的方法,其中所述邀请包括到在被编辑的所述文档的链接,所述链接包括指定当所述指定用户选择或激活所述链接时所述指定用户的客户端最初显示或呈现的所述文档的部分的命令或位置参数。
44.根据权利要求37-43中的任何一个所述的方法,其中向所述指定用户发送所述邀请包括,当所述指定用户在线时,通过与以下中的一个相对应的在线信道发送所述邀请:与聊天会话相对应的应用的活动窗口、与所述文档编辑会话相对应的应用的活动窗口、与所述文档编辑会话相对应的所述应用的非活动窗口、以及除与所述文档编辑会话相对应的所述应用外的在线应用。
45.根据权利要求37-44中的任何一个所述的方法,进一步包括响应于从所述指定用户接收对所述邀请的接受,将所述相应文档的至少部分发送给与所述指定用户相关联的客户端。
46.根据权利要求37-45中的任何一个所述的方法,包括: 针对与所述文档相关联的聊天对话,从被授权访问所述文档的所述用户中的一个或多个接收聊天内容; 将所述嵌入请求添加到所述聊天对话;以及 将所述聊天对话的包括所述嵌入请求的至少部分发送给被授权访问所述文档的所述用户中的一个或多个。
47.根据权利要求46所述的方法,包括将到所述文档的对应于所述嵌入请求的部分的链接添加到所述聊天对话。
48.一种存储被配置供服务器系统的一个或多个处理器执行的一个或多个程序的非暂时性计算机可读存储介质,所述一个或多个程序包括: 用于从在文档编辑会话中的一个或多个用户接收文档编辑命令的指令,其中所述一个或多个用户被授权对所述文档编辑会话的相应文档进行编辑; 用于根据从所述用户接收的所述命令对所述相应文档进行编辑的指令,所接收的命令包括关于所述文档的文档文本; 用于在所述相应文档文本内检测邀请指定用户访问所述相应文档的嵌入请求的指令;以及 用于通过向所述指定用户发送邀请来对检测到所述嵌入请求作出响应,并且将所述指定用户添加到所述相应文档的访问控制列表以使所述指定用户能够访问所述文档的指令。
49.根据权利要求48所述的计算机可读存储介质,其中所述文档从由以下组成的组中选择:字处理文档、电子表格文档、演示文档、绘图和网页。
50.根据权利要求48或49所述的计算机可读存储介质,其中所述嵌入请求包括后跟所述指定用户的用户标识符的预定义符号。
51.根据权利要求48或49所述的计算机可读存储介质,其中在所接收的命令中的所述文档文本包括待被包括在所述文档中的评论中的评论文本,以及所述评论文本包括所述嵌入请求。
52.根据权利要求48、49和51中的任何一个所述的计算机可读存储介质,其中用于检测的所述指令包括用于以下的指令:检测所接收的命令中的所述文档文本中的预定义符号,所述预定义符号后跟在所述预定义符号之后输入的一个或多个字符;基于在所述预定义符号之后输入的所述一个或多个字符来识别一个或多个联系人建议,其中所述联系人建议来自相应参与者的地址簿;以及向所述客户端发送所述一个或多个联系人建议。
53.—种服务器系统,包括: 一个或多个处理器;以及 存储器,其存储一个或多个程序以供所述一个或多个处理器执行,所述一个或多个程序包括: 用于从在文档编辑会话中的一个或多个用户接收文档编辑命令的指令,其中所述一个或多个用户被授权对所述文档编辑会话的相应文档进行编辑; 用于根据从所述用户接收的所述命令对所述相应文档进行编辑的指令,所接收的命令包括关于所述文档的文档文本; 用于在所述相应文档文本内检测邀请指定用户访问所述相应文档的嵌入请求的指令;以及 用于通过向所述指定用户发送邀请来对检测到所述嵌入请求作出响应,并且将所述指定用户添加到所述相应文档的访问控制列表以使所述指定用户能够访问所述文档的指令。
54.一种存储被配置供服务器系统的一个或多个处理器执行的一个或多个程序的非暂时性计算机可读存储介质,所述一个或多个程序包括待由所述一个或多个处理器执行以执行权利要求37-47中的任何一个所述的方法的指令。
55.—种服务器系统,包括: 一个或多个处理器;以及 存储器,其存储一个或多个程序以供所述一个或多个处理器执行; 所述系统包括用于执行权`利要求37-47中的任何一个所述的方法的装置。
【文档编号】G06F15/16GK103493035SQ201280013577
【公开日】2014年1月1日 申请日期:2012年3月6日 优先权日:2011年3月15日
【发明者】加布里尔·科恩 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1