一种调用即时通信功能的方法及相关设备与流程

文档序号:24734511发布日期:2021-04-20 18:55阅读:117来源:国知局
一种调用即时通信功能的方法及相关设备与流程

1.本发明涉及即时通信技术领域,尤其涉及一种调用即时通信功能的方法及相关设备。


背景技术:

2.即时通信(instant messaging,简称im)是手机、平板电脑和计算机用户之间利用网络进行即时消息的发送与接收过程,能够传送文字、图片、声音和视频等信息,是互联网非常普遍和受欢迎的网络应用之一。典型的im应用有微信、qq、skype、腾讯通和亿企通等,其中,前三者面向公众用户,后两者面向企业或组织用户。
3.目前在很多项目实施过程中,都需要第三方应用和即时通信进行交互,甚至需要嵌入即时通信的功能。目前情况下没有成熟的方案来实现单点登录,平滑的启动即时通信,呼起即时通信,并在通话之后退出登录。第三方应用和即时通信之间只能形成信息孤岛各自调用,无法实现整合处理的用户体验。
4.同时,第三方应用调用即时通信提供的公开接口,也存在安全调用问题:比如调用者身份认证、权限检查或单点登录的同时实现授权调用,怎么才可以避免信息泄露,防窃听以及防盗用。
5.因此,迫切需要一个解决方案来实现第三方应用和即时通信功能的交互及通讯规范。


技术实现要素:

6.本发明提供一种调用即时通信功能的方法及相关设备,用以解决现有技术中第三方应用无法与即时通信实现功能交互的问题,实现第三方应用和即时通信功能的交互及通讯规范。
7.本发明提供一种调用即时通信功能的方法,包括:
8.调用即时通信的后台接口,获取所述即时通信的登录令牌;
9.根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制。
10.根据本发明提供的一种调用即时通信功能的方法,所述调用即时通信后台接口,获取所述即时通信的登录令牌,包括:
11.启动所述即时通信的http服务进程;
12.调用所述即时通信的http服务接口获取所述即时通信的客户端标识和服务器信息,所述服务器信息包括所述即时通信登录的域名信息。
13.根据本发明提供的一种调用即时通信功能的方法,所述调用所述http服务接口获取所述即时通信的客户端标识和服务器信息,包括:
14.如果所述即时通信已登录,则在获取所述即时通信的客户端标识接口判断所请求域名信息是否与已登录的服务器一致,如果服务器不一致,则直接返回请求服务错误;
15.如果所述即时通信未登录,则直接返回请求成功,并保存所述即时通信的客户端标识以便为后面的接口调用。
16.根据本发明提供的一种调用即时通信功能的方法,所述获取所述即时通信的登录令牌,包括:
17.调用获取授权码接口申请授权码;
18.获取到所述授权码后,调用获取访问令牌接口请求所述访问令牌;
19.获取到所述访问令牌后,调用获取登录令牌接口请求所述即时通信的登录令牌,并传入所述访问令牌与所述客户端标识;
20.获取到所述即时通信的登录令牌和服务器标识。
21.根据本发明提供的一种调用即时通信功能的方法,所述根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制,包括:
22.调用所述即时通信的http服务接口,传入所述登录令牌、所述服务器标识以及所述客户端标识执行用户登录所述即时通信;
23.获取所述即时通信登录成功的信息。
24.根据本发明提供的一种调用即时通信功能的方法,所述根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制,包括:
25.启动所述即时通信的页面聊天会话或音视频请求;
26.调用所述即时通信的http服务接口,获取当前所述即时通信的登录用户及在线时间。
27.根据本发明提供的一种调用即时通信功能的方法,所述根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制,包括:
28.打开所述即时通信的功能页面,所述功能页面包括工作台、通讯录以及任务通知;
29.获取所述即时通信的退出登录通知。
30.本发明还提供一种调用即时通信功能的装置,包括:
31.获取登录令牌模块,用于调用即时通信的后台接口,获取所述即时通信的登录令牌;
32.页面操作控制模块,用于根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制。
33.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述调用即时通信功能方法的步骤。
34.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述调用即时通信功能方法的步骤。
35.本发明提供了一种调用即时通信功能的方法及相关设备,通过给第三方应用提供即时通信的登录令牌,实现第三方应用和即时通信功能的交互及通讯规范,从而也实现第三方应用调用即时通信的网页服务功能。
附图说明
36.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本发明提供的调用即时通信功能原理的架构图;
38.图2是本发明提供的调用即时通信功能方法的流程示意图;
39.图3是本发明提供的获取即时通信登录令牌的流程示意图之一;
40.图4是本发明提供的获取即时通信登录令牌的流程示意图之二;
41.图5是本发明提供的对即时通信进行页面操作和控制的流程示意图;
42.图6是本发明提供的调用即时通信功能方法的时序图;
43.图7是本发明提供的调用即时通信功能装置的结构示意图;
44.图8是本发明提供的电子设备的结构示意图。
具体实施方式
45.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.http是一个简单的请求

响应协议,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。http为www(world wide web,万维网)的支撑协议,http协议是基于b/s(客户端/服务器)架构进行通信的,而http协议的服务器实现程序有httpd、nginx等,其客户端的实现程序主要是web浏览器。
47.http协议是建立在tcp协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次http请求。http会通过tcp建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,http会立即将tcp连接断开。
48.本发明提供了一种调用即时通信功能的方法及相关设备,所述方法通过给第三方应用提供即时通信的登录令牌,实现第三方应用和即时通信功能的交互及通讯规范,从而也实现第三方应用调用即时通信的网页服务功能。
49.下面结合图1

图8描述本发明提供的调用即时通信功能的方法及相关设备。
50.图1是本发明提供的调用即时通信功能原理的架构图,如图所示。客户端安装有第三方应用软件和即时通信软件,即第三方应用客户端和即时通信客户端。第三方应用客户端与第三方应用服务器通信连接,即时通信客户端与即时通信服务器通信连接。第三方应用软件和所述通信即时通信软件在同一客户端登录。
51.为了解决第三方应用与即时通信之间实现交互的技术问题,本发明提供了如下解决方案的规则:
52.(1)第三方应用已实现和即时通信的单点登录,或和即时通信实现第三方用户体系的同步和认证,且第三方应用已登录具体用户。
53.单点登录(single sign on,缩写sso),是比较流行的企业业务整合的解决方案之
一。sso的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
54.(2)即时通信是单实例的版本,多次呼起或隐含都是同一个实例。具体的:
55.①
同一客户端不允许多个用户同时登录,对于第三方应用也只是一个用户进行业务交互。
56.②
如果想使用其他用户身份登录,则只能先注销当前登录用户之后再切换其他用户登录,注销用户可依据即时通信后台配置进行确认提示操作。
57.③
一个用户可在多个第三方应用中呼起即时通信功能,只要应用在同一客户端下面。
58.④
一个用户不允许在多个pc客户端同时登录,当前逻辑是用户a在某个pc客户端1登录,再在别的pc客户端2用用户a身份登录,则客户端1的用户a被挤下线并提示客户端2的用户。
59.(3)依据项目要求,即时通信可以显示,也可以在桌面隐患;即时通信作为被动执行方,其启动、登录、用户切换等都可由第三方应用执行。
60.(4)客户端的第三方应用可调用即时通信功能,具体包括:
61.①
启动即时通信,但即时通信可未登录。
62.②
指定某用户登录,并可切换其他用户登录,也可注销当前用户登录。
63.③
可呼起登录用户和其他用户的会话页面,可以是一对一进行会话,也可是一对多进行会话;可启动即时通信并定位会话页面,然后显示在指定位置,所述位置可由第三方应用指定。
64.可选的,上述所述即时通信可基于pc版的,但本发明不限于此。
65.以下将针对上述解决问题的技术方案结合附图进行详细描述。
66.图2是本发明提供的调用即时通信功能方法的流程示意图,如图所示。一种调用即时通信功能的方法,包括:
67.步骤200,调用即时通信的后台接口,获取所述即时通信的登录令牌。
68.可选的,第三方应用客户端通过启动同一客户端的即时通信客户端的进程,通过启动所述即时通信的进程,进而获得所述即时通信的客户端标识与即时通信服务器的服务信息。
69.步骤202,根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制。
70.可选的,第三方应用客户端通过获取到即时通信客户端的登录令牌,通过所述登录令牌登录所述即时通信。第三方应用登录所述即时通信之后,可调用所述及时通信的网页服务功能(比如工作台、通信录、任务通知等),并可启动所述即时通信的服务窗口以进行页面操作与控制,比如启动所述即时通信的聊天服务窗口,对聊天服务窗口进行页面操作和控制,也可对聊天服务窗口发起音视频会话请求等。
71.以下将通过具体实施例对本发明所述调用即时通信功能的方法进行描述。图3是本发明提供的获取即时通信登录令牌的流程示意图之一,如图所示。上述步骤200中,所述调用即时通信后台接口,获取所述即时通信的登录令牌,包括:
72.步骤300,启动所述即时通信的http服务进程。
73.可选的,第三方应用客服端执行预设指令(比如“linkdood:///login”指令)来启动即时通信客户端的http服务进程。所述预设指令可根据项目实际要求而设定。
74.如果所述即时通信客户端未启动线程,则启动所述即时通信客户端的线程;如果所述即时通信客户端已启动线程,则第三方应用客户端唤起所述线程,但只是启动线程不登录所述即时通信客户端。
75.线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
76.可选的,所述即时通信客户端的线程启动后,所述即时通信内部启动http服务,使用本地ip+端口号,所述端口号开始于预设值(比如22350),如果22350被占有,则使用22351,直到22360,根据项目实际需要,最多可尝试10个端口。其中,端口(port)是客户端与服务器交流的出口。
77.客户端可以通过ip地址找到对应的服务器,但是服务器是有很多端口的,每个应用程序对应一个端口号,通过端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,即端口号。
78.步骤302,调用所述即时通信的http服务接口获取所述即时通信的客户端标识和服务器信息,所述服务器信息包括所述即时通信登录的域名信息。
79.可选的,第三方应用客户端执行http服务中“获取客户端标识”的接口,地址为本地ip+22350,向所述即时通信客户端请求获取客户端标识。如果所述请求超时,则尝试下一端口号22351,直到22360(根据预先设定值,最多尝试10个端口),如果均失败,则向所述第三方应用客户端返回“无法获取客户端标识”的提示。
80.可选的,如果所述即时通信已登录,则在获取所述即时通信的客户端标识接口判断所请求域名信息是否与已登录的服务器一致,如果服务器不一致,则直接返回“请求服务错误”的提示。
81.如果所述即时通信未登录,则不需要判断所请求域名信息是否与已登录的服务器一致,而是直接返回请求成功。如果“获取客户端标识”的接口返回成功,则保存所述即时通信的客户端标识(clientflag)以便为后面的接口调用使用。
82.图4是本发明提供的获取即时通信登录令牌的流程图之二,如图所示。上述所述步骤200中,所述获取所述即时通信的登录令牌,包括:
83.步骤400,调用获取授权码接口申请授权码。
84.可选的,第三方应用客户端向第三方应用服务器请求获取所述即时通信的登录令牌(token)。所述第三方应用服务器执行“获取授权码(authorization code,缩写authcode)”接口,向所述即时通信服务器申请授权码(authcode)。
85.需要说明的是,这里需要依据项目实际要求是否采取静默授权的方式。

静默授权:snsapi_base,没有弹窗,只能获取用户的openid。
86.②
非静默授权:snsapi_userinfo,有弹框弹出需要用户手动点击确认授权。可以获取openid,用户的头像、昵称等。
87.第三方应用有自己的用户体系及认证模式,假设第三方应用已经通过用户a进行登录:
88.可选的,如果采取静默授权,则需要传入第三方应用的用户身份信息进行用户定位,即需要将用户a的idtoken信息放在header中,骑牛参数为静默授权模式,不弹出授权页面,只是返回用户a的授权码。所述即时通信服务器要依据idtoken信息调用第三方应用的认证接口获取用户a的数据,生成返回的授权码。
89.可选的,第三方应用使用所述即时通信的用户体系,采用所述即时通信的认证模式,即请求参数为非静默授权,则需要弹出授权页面,返回授权页面登录用户a的授权码。
90.可选的,第三方应用服务器通过接口的回调函数获取到所述即时通信服务器的授权码(authcode)。
91.步骤402,获取到所述授权码后,调用获取访问令牌接口请求所述访问令牌。
92.可选的,第三方应用服务器依据获取的授权码(authcode),调用“获取访问令牌(accesstoken)”的即时通信的后台接口,请求获取所述访问令牌。
93.步骤404,获取到所述访问令牌后,调用获取登录令牌接口请求所述即时通信的登录令牌,并传入所述访问令牌与所述客户端标识。
94.所述即时通信服务器向所述第三方应用服务器返回所述访问令牌后,调用“获取登录令牌(token)”的即时通信后台接口,并传入所述访问令牌(accesstoken)和所述客户端标识(clientflag),请求获取登录令牌(logintoken)和服务器标识(serverflag)。
95.步骤406,获取到所述即时通信的登录令牌和服务器标识。
96.所述即时通信服务器将登录令牌(token)和服务器标识(serverflag)发送至所述第三方应用客户端。
97.可选的,所述登录令牌(token)和第三方应用申请的公众号关联,所述关联的信息包括“服务器标识(serverflag)+应用程序id地址(appid)+客户端标识(clientflag)+时间戳+有效期”。
98.可选的,根据系统预先设定,即登录令牌(logintoken)默认只允许登录一次(登录失败次数不算),下一次登录则需要重新获取登录令牌。本发明也可根据项目需要由页面对登录令牌进行记录,以便下一次登录不需要重新获取登录令牌,本发明不限于此。
99.可选的,登录令牌需要在有效期范围内调用,如果失效了则需要重新申请,如果在有效期内重复申请,则返回相同的登录令牌(token)。
100.可选的,所述服务器标识(serverflag)是第三方应用请求的appid确定的待客户端登录的所述即时通信服务器标识。因为serverflag是所述即时通信的服务器标识,所述即时通信可以登录多个服务器,但要确定是登录哪个服务器的即时通信。
101.可选的,所述第三方应用客户端执行所述即时通信的http服务的“登录即时通信”接口,传入所述登录令牌、所述服务器标识以及所述客户端标识执行用户a的登录所述即时通信。
102.上述执行“登录即时通信”接口,需要注意的是:
103.(1)、单实例即时通信只允许一个进行运行,如果即时通信进程已启动,则不管所述即时通信是否登录,则切换到serverflag服务器的即时通信进行用户登录。
104.(2)、即时通信客户端调用自己后台服务器验证登录令(logintoken)和客户标识(clientflag)的有效性(包括次数、有效期、appid合法性等),验证通过后再进行本地即时通信登录。
105.(3)、即时通信客户端登录成功后返回给第三方应用客户端用户临时票据(userticket),然后所有第三方应用客户端端在调用即时通信的功能时需传入userticket。userticket是临时授权凭证,有了这个凭证,第三方应用才能调用即时通信的接口执行相应的功能。
106.(4)、如果userticket失效,则可调用“刷新userticket”接口的方法获取新的userticket,然后再传入登录令牌(logintoken)和(clientflag)。
107.即时通信客户端向第三方应用客户端返回即时通信登录成功的信息。所述即时通信登录成功后,第三方应用就可以对即时通信进行页面操作和控制。
108.图5是本发明提供的对即时通信进行页面操作和控制的流程示意图,如图所示。所述根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制,包括:
109.步骤500,启动所述即时通信的页面聊天会话或音视频请求。
110.可选的,用户a登录即时通信后,第三方应用客户端可以启动会话,实现一对一会话或一对多会话,比如用户a和用户b、用户c、用户d三人聊天。
111.具体的,第三方应用调用即时通信http服务中的启动会话接口,传入用户b、用户c、用户d三个用户的id号及会话标题,定位当前用户a与用户b、用户c、用户d之间的会话,并返回调用者sessionid(会话id)。
112.进一步,第三方应用调用即时通信http服务中的新增会话用户接口,传入sessionid及用户e,向当前聊天会话中增加用户e,本接口也可通过在即时通信中选择用户e实现。
113.可选的,第三方应用调用即时通信http服务中的删除会话用户接口,传入sessionid及用户e,向聊天会话中删除用户e,本接口也可通过在即时通信中选择用户e剔除。
114.可选的,传入sessionid,第三方应用可拉取会话数据,比如即时通信在本地的缓存历史数据。
115.可选的,sessionid是定位会话的标记字段,如果是一对一会话,则sessionid是对方的用户id;如果是群会话,则sessionid是群id。
116.可选的,第三方应用也可向即时通信请求音视频会话。
117.具体的,第三方应用调用即时通信http服务中的启动单会话接口,传入用户b的id,即可启动即时通信,发起当前用户a和用户b之间的音视频会话请求。
118.进一步的,第三方应用调用即时通信http服务中的群会话接口,传入用户b、用户c、用户d三个用户的id及会话标题,也可启动即时通信,发起当前用户a和用户b、用户c、用户d之间的音视频会话请求。
119.步骤502,调用所述即时通信http服务的登录状态接口,获取当前所述即时通信的登录用户及在线时间。
120.可选的,第三方应用调用即时通信http服务中登录状态接口,可获取当前即时通信的登录用户及在线时间等。如果即时通信客户端向第三方应用客户端返回空信息,则表示即时通信未登录。
121.步骤504,打开所述即时通信的功能页面,所述功能页面包括工作台、通讯录以及
任务通知。
122.可选的,所述页面功能除了包括工作台、通讯录以及任务通知,还可以包括其他页面功能,具体可根据项目需求设置,本发明不限于此。
123.步骤506,获取所述即时通信的退出登录通知。
124.可选的,第三方应用客户端可以获取到即时通信客户端关于当前用户退出登录的信息。
125.综上所述,本发明所述调用即时通信功能的方法,可实现第三方用用与即时通信之间的平滑交互、安全可靠的通信,具有以下技术效果:
126.(1)为了实现和第三方应用的交互,需要对接第三方应用的认证体系,因此需要对第三方应用的身份进行授权认证。所以本发明实现了第三方应用和即时通信之间的安全通信问题,即时通信对外开放的功能,都可被第三方应用安全调用;扩展了即时通信和第三方应用功能嵌入的可能性和范围。
127.(2)因为本发明实现了第三方应用和即时通信的安全通信,提高了即时通信的应用场景(应用场景在下面提供的实施例会具体描述)和使用范围,即时通信即也可作为整体即时通讯解决方案对外提供服务,也可以采取插件模式满足大型工程或平台实现局部的通信功能。
128.以下将通过一个具体的实施例对本发明所述调用即时通信功能的方法进行描述。
129.图6是本发明提供的调用即时通信功能方法的时序图,如图所示。
130.图中示出了用户a、第三方应用客户端、第三方应用服务器、即时通信客户端以及即时通信服务器。
131.步骤1,第三方应用在同一客户端启动即时通信,可以通过执行预设命令来启动,比如执行“linkdood:///login”命令来启动即时通信的进程。
132.步骤2,即时通信使用本地ip+端口号启动http服务。
133.步骤3,第三方应用客户端调用http服务接口获取即时通信的客户端标识和服务器信息。所述服务器信息包括即时通信的域名信息。
134.步骤4,即时通信客户端将自身的客户端标识和服务器信息返回给第三方应用客户端。
135.步骤5,第三方应用客户端向第三方应用服务器请求获取即时通信登录令牌。
136.步骤6,第三方应用服务器调用获取授权码接口,向即时通信服务器申请授权码。
137.可选的,在本步骤需要依据项目要求是否采取静默授权的方式而执行相应的操作,具体如上述所描述。
138.步骤7,即时通信服务器通过回调函数向第三方应用服务器返回授权码信息。
139.步骤8,第三方应用服务器调用获取访问令牌接口,向即时通信服务器请求访问令牌。
140.步骤9,即时通信服务器向第三方应用服务器返回访问令牌。
141.步骤10,第三方应用服务器调用获取登录令牌接口,向即时通信服务器请求即时通信的登录令牌,并传入访问令牌和客户端标识。
142.步骤11,即时通信服务器向第三方应用客户端返回登录令牌。
143.步骤12,第三方应用客户端调用http服务接口登录客户端的即时通信,并传入登
录令牌和客户端标识,进行客户端的即时通信的登录。
144.步骤13,即时通信客户端向第三方应用客户端返回即时通信登录成功的信息。
145.步骤14,第三方应用客户端向即时通信客户端呼起登录用户a和其他用户的聊天会话。
146.步骤15,第三方应用客户端向即时通信客户端启动登录用户a和其他用户的音视频请求。
147.可以理解的是,第三方应用客户端还可以对即时通信进行其他页面操作与控制等,本发明不限于呼起聊天会话和音视频请求。
148.步骤16,即时通信客户端执行后台任务或由第三方应用客户端发起的被动功能,比如被呼起音视频等。
149.步骤17,第三方应用客户端调用http服务接口获取即时通信状态,比如登录用户和在线时间等。
150.步骤16,第三方应用客户端可以获取即时通信客户端的当前用户a退出登录的信息。
151.综上所述,本发明提供的一种调用即时通信功能的方法,实现了第三方应用和即时通信功能的交互及通信规范。
152.基于上述本发明提供的技术方案,以下再针对本发明的各种使用场景提供具体的实施例,描述如下:
153.实施例1:一个用户多个第三方应用使用即时通信功能。
154.(1)运行软件状态:
155.在pc端运行的软件如下:
156.①
即时通信:用户a已登录。
157.②
第三方应用1:用户a已登录,并已通过userticket1调用即时通信功能。
158.③
第三方应用2:用户a已登录,未获取userticket。
159.userticket是临时授权凭证,有了这个凭证,第三方应用才能调用即时通信的接口执行相应的功能。
160.(2)执行流程:
161.①
第三方应用2通过"获取登录token"接口获取第三方应用2对应的登录token,第三方应用1和第三方应用2的logintoken不一样,虽然是同一个用户a,但是不同应用。
162.②
第三方应用2调用http服务的“登录即时通信”接口进行即时通信登录,即时通信内部判断已经登录,则不做登录操作,生成新的userticket并返回给第三方应用2。
163.③
第三方应用1和第三方应用2可通过自己的userticket呼起即时通信功能。
164.④
两个第三方应用功能调用之间没有冲突,比如同时调取自己的聊天会话,相互不影响。
165.(2)原理解释:
166.①
多个第三方应用可用同样的用户来调用即时通信呼起功能,因为第三方应用不同,所以logintoken和userticket都是不一样的。
167.②
即时通信可支持多个第三方应用调用同一功能,相互之间不冲突。
168.实施例2:一个用户多个应用的退出登录。
169.(1)运行软件状态:
170.在pc端运行的软件如下:
171.①
即时通信:用户a已登录
172.②
第三方应用1:web用户a已登录,并已通过userticket1调用即时通信功能。
173.③
第三方应用2:web用户a已登录,并已通过userticket2调用即时通信功能。
174.(2)执行流程:
175.①
第三方应用1调用http服务的“退出登录”接口,执行用户a的退出登录,这时userticket1失效,userticket2依然有效,即时通信的用户a依然登录状态。
176.②
第三方应用2调用http服务的“退出登录”接口,执行用户a的退出登录,userticket2失效,即时通信判断是否所有的userticket都已失效,如果是,则即时通信退出登录。
177.(3)原理解释:
178.①
userticket依赖于即时通信的登录,如果即时通信退出登录,所有的userticket都失效。
179.②
某个第三方应用退出登录,只是代表所述第三方应用自己不可调用即时通信功能,不影响其他第三方应用。
180.实施例3:第三方应用采用自有认证体系并获取登录令牌(token)。
181.(1)运行软件状态:
182.在pc端运行的软件如下:
183.①
即时通信:状态未知。
184.②
web第三方应用:web用户a已登录。
185.(2)场景说明:
186.①
web第三方应用是自有用户和组织机构,自有用户认证体系。
187.②
即时通信需同步web第三方应用的用户和组织机构,在即时通信后台要调用web第三方应用的接口进行用户认证。
188.③
即时通信后台和web第三方应用后台网络是互通的,并且后台服务之间可相互调用。
189.(3)执行流程::
190.①
web第三方应用客户端启动pc端即时通信进程,并通过轮询“获取客户端标识”接口获取http服务的ip+端口号,同时获取客户端标识clientflag。
191.②
web第三方应用客户端向自己的服务器请求获取即时通信的登录令牌(token),并传入客户端标识clientflag。
192.③
web第三方应用的服务器首先获取用户a的验证令牌(token)信息(比如idtoken)。
193.④
web第三方应用调用即时通信服务器的“获取授权码(authorization code)”接口,采用静默授权模式,在http请求的数据包的header中加入"idtoken=213412421",申请获取授权码。
194.⑤
即时通信服务器内部,“获取authorization code”接口执行如下步骤:
195.步骤1:判断header中是否包含三方认证信息(idtoken),如果是,则默认采取静默
模式。
196.步骤2:调用第三方应用的接口验证idtoken的有效性,并最终获取用户数据,比如获取用户a的数据。
197.步骤3:判断用户a在即时通信的用户体系是否存在权限检测。
198.步骤4:如果没有存在权限检测,则生成用户a的授权码(authcode)并返回给第三方应用。
199.⑥
web第三方应用后台(即第三方应用服务器)依据获取的授权码authcode,调用“获取访问令牌(accesstoken)”的即时通信后台接口,获取accesstoken。
200.⑦
web第三方应用调用“获取登录token”的即时通信后台接口,传入访问令牌(accesstoken)和客户端标识(clientflag),获取登录token(logintoken)和服务器标识(serverflag),并把登录token和serverflag给第三方应用客户端。
201.⑧
web第三方应用客户端可依据获取的登录token进行即时通信登录。
202.(4)原理解释:
203.①“
获取authorization code”接口返回的授权码要对应用户身份,因为如果是第三方已登录的web第三方应用,用户身份只能第三方通过参数传递过来。
204.②
登录token涉及客户端,需传入客户端标识(clientflag)。
205.综上,本发明所述第三方应用不限于wed的第三方应用,还可以是即时通信或其他的第三方应用,本发明不限于此。
206.下面对本发明提供的调用即时通信功能的装置进行描述,下文描述的调用即时通信功能的装置与上文描述的调用即时通信功能的方法可相互对应参照。
207.图7是本发明提供的调用即时通信功能装置的结构示意图,如图所示。本发明所述一种调用即时通信功能的装置700包括获取登录令牌模块702和页面操作控制模块704。其中,
208.获取登录令牌模块702用于调用即时通信的后台接口,获取所述即时通信的登录令牌。
209.页面操作控制模块704用于根据获取到的所述登录令牌,调用所述即时通信的网页服务功能并启动所述即时通信的服务窗口以进行页面操作与控制。
210.图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行上述所述的调用即时通信功能的方法的步骤。
211.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种
可以存储程序代码的介质。
212.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述所提供的调用即时通信功能的方法的步骤。
213.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述提供的调用即时通信功能的方法的步骤。
214.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
215.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
216.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1