中国互联网办公室·imo运营中心
目录
1 引言 3
1.1 编写目的 3
1.2 读者对象 3
1.3 文档内容 3
1.4 系统说明 3
2 业务流程 4
3 接口说明: 6
4 接入范例 8
5 登录中心 9
说明开放平台中客户端API接口的设计方案、调用方法。
开放平台的开发、产品设计人员,以及接入开放平台的第三方相关人员
平台中客户端API接口的设计方案、调用方法。
客户端API接口:从第三方平台使用客户端API向imo发起命令并执行。
1. 第三方程序通过客户端API接口传递Cmd命令。
2. 客户端API接口接收到Cmd命令后,向imoClient传递Cmd。
3. imoClient接收Cmd并负责执行Cmd内容。
交互时序图 – 客户端明码登录非安全方式登录:
交互时序图 – 服务端登录中心安全方式登录:
l 客户端API接口
imo的客户端API接口名为“imo:|”,
1. API接口接收并执行Cmd命令,Cmd命令由Account、Action两部分组成
2. 名词解释:Account
Account的作用是标识Cmd的执行对象
3. 名词解释:Action
Action的作用是标识Cmd的执行内容
例:
imo:| -account admin@51927477 -chat_account user1@51927477
运行后,
【帐号】如果当前系统中已有imo运行,且登录帐号为admin@51927477,
【操作】则发起与用户user1@51927477的单人聊天对话。
4. 操作内容可以一次传递多个
例:
imo:| -account admin@51927477 -active -chat_account user1@51927477
运行后,
【操作1】显示帐号为admin@51927477的imo主界面。
【操作2】发起与用户user1@51927477的单人聊天对话。
l Cmd参数详细说明
参数 |
格式 |
说明 |
----Account参数 |
|
|
account |
- account [userfullaccount] |
指定cmd的执行对象 |
lastaccount |
-lastaccount |
指定cmd的执行对象为最近使用过的imo帐号 |
|
|
|
----Action参数 |
|
|
active |
-active |
显示imo主界面 |
login |
-login [password] |
通过password自动登录imo 非安全方式 密码校验在客户端完成 |
login_ sessionkey |
-login_ sessionkey [token] |
通过token自动登录imo 安全方式登录 密码校验在服务端完成 |
login_ appkey |
-login_ appkey [appkey] |
如果使用login_sessionkey,则必须同时使用login_appkey |
login_cid |
-login_ cid [cid] |
如果使用login_sessionkey,则必须同时使用login_cid |
login_uid |
-login_ uid [uid] |
如果使用login_sessionkey,则必须同时使用login_uid |
chat_account |
-chat_account [userfullaccount] |
与指定帐号发起单人聊天 |
qgroupchat_displayid |
-qgroupchat_displayid [qgrp_displayid] |
与指定群发起单人聊天 |
multichat_displayid |
-multichat_displayid [mchat_displayid] |
与指定多人会话发起单人聊天 |
|
|
|
l 客户端API接口
VC调用范例:
CString strCmdline = _T("imo:| -lastaccount -active");
::ShellExecute(NULL, _T("open"), (LPCTSTR)strCmdline, NULL, NULL, SW_SHOWNORMAL);
为了实现客户端安全方式的反向登录,我们在服务端提供了登录中心业务。
1. 在服务端提交帐号、密码、appkey等关键信息到登录中心
登录中心会返回加密后的token凭证。
2. 在客户端,我们通过imo反向登录接口使用此token后
即可达到反向登录的目的与效果,并且保证了用户密码的安全性
下表为登录中心接口说明:
API |
http://open.imoffice.com:8000/?app=ctoken |
|||
说明 |
登录中心接口、Post方式提交 |
|||
参数 |
参数 |
说明 |
||
jsontext |
URLEncode(Json String) |
|||
Json String说明 |
||||
Key |
Value |
说明 |
||
proto |
loginCenter get token req |
固定内容 |
||
ver |
1.0 |
固定内容 |
||
tranid |
[发起方填写] |
标识一次协议的请求与返回 |
||
content |
contentJson |
|
||
contentJson说明 |
||||
Key |
Value |
说明 |
||
flag |
{ 0:使用cAccount登录, 1:使用Domain登录, 2:使用Mobile登录} |
|
||
cAccount |
企业数字帐号 |
|
||
domain |
企业域名帐号 |
|
||
mobile |
手机号码 |
|
||
uAccount |
用户帐号 |
|
||
md5(password) |
用户密码 |
|
||
返回值 |
ret |
|
|
|
tranid |
|
|
||
cid |
|
|
||
uid |
|
|
||
token |
登录令牌 |
|
||
|
||||
范例 |
admin@51927477帐号通过logincenter获取token Post jsontext= { "proto":"loginCenter get token req", "ver":"1.0", "tranid":"9167", "content":{ "flag":"0", "cAccount":"51927477", "uAccount":"admin", "password":"96e79218965eb72c92a549dd5a330112", "appKey":"6202393DCC6B4301BE21A573BBCE6848" }}
Response: { "proto":"loginCenter get token rsp", "ver":"1.0", "tranid":"7378", "jsontext": { "ret":0, "cAccount":"51927477", "uAccount":"admin", "condIp":"180.153.138.6", "port":1863, "cid":45838, "uid":690030, "token":"1DhxrjfJkMfKmBiVqTfplBtRB3DpSEKQ9cG2j+1OokyGJxdL9eU5rVwdUgBGhGpi3OHooGY8qORPZBohkxnkZcSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtMSzdais8g60xLN1qKzyDrTEs3WorPIOtA==" } } |
http://www.029imo.com imo服务中心