中国互联网办公室·imo运营中心
目录
1 引言 3
1.1 编写目的 3
1.2 读者对象 3
1.3 文档内容 3
1.4 系统说明 3
2 业务流程 4
3 接口说明: 6
4 接入范例 7
说明反向登录系统的设计方案,交互流程。
反向登录系统的开发,产品设计人员,以及接入开放平台的第三方相关人员
反向登录系统的设计方案,交互流程。
反向登录:从第三方平台启动imo client并自动登录
1. 接入方通过邮件申请imo 反向登录使用权限
2. imo 开放平台通过接入申请,为接入方发放特定appKey(1个32个字节长的字符串)
3. 第三方平台用户在原平台上点击imo图标,第三方平台通过imo提供的getToken接口获取此次登录imo client的凭证token
4. 第三方平台通过特定方式启动imo client,并将token传给imo client
5. imo client使用token自动登录成功,业务完成
交互时序图:
1. gettoken接口说明:
接口url:http://open.imoffice.com:8000/index.php?app=gettoken
调用方式:http post
参数:cAccount, 一个公司的imo数字帐号,取值,1-9223372036854775807
参数:uAccount, 一个用户的imo帐号,取值,1-9223372036854775807
参数:mobile, 手机号,仅当flag的值为2时,才需要填写此值
参数:password, 用户的imo密码
参数:appKey, imo发放的接入方标识,取值,32byte字符串
参数:flag, 0-数字帐号登录;1-域名帐号登录;2-绑定的手机号登录
参数:ver, 默认用1
参数:tranid, 由第三方自己生成的事务id,建议使用guid。
成功返回:
{“result”:true,”token”:”asdfasdfaasdfasdfasdfasdf”,”ver”:”1”,”tranid”:”123456789”}
失败返回:
{“result”:false,”errorCode”:0,””errorMsg”:”cid error”}
errorCode列表:
错误码 |
错误信息 |
0 |
cid error |
1 |
api key error |
2 |
uid error |
3 |
password error |
4 |
miss param |
5 |
miss param of mobile |
6 |
miss account param |
7 |
no authorize |
php:
$url = http://open.imoffice.com:8000/index.php?app=gettoken
$process = curl_init($url);
$param =’cAccount=510088&uAccount=admin&’
.’ password=96e79218965eb72c92a549dd5a330112’
.’&appKey= 6202393D-CC6B-4301-BE21-A573BBCE6848’
.’&flag=0&ver=1&tranid=123456789’
curl_setopt($process, CURLOPT_POSTFIELDS, $param);
curl_setopt($process, CURLOPT_POST, 1);
ob_start();
$return = curl_exec($process);
$content = ob_get_contents();
ob_end_clean();
curl_close($process);
echo $content;
将以下内容另存成html文件进行调试即可
function SetInputValue(id, val)
{
var obj = document.getElementById(id);
if (obj)
{
obj.value = val;
}
}
function GetInputValue(id)
{
var val = "";
var obj = document.getElementById(id);
if (obj)
{
val = obj.value;
}
return val;
}
SetInputValue("input_account", "登录帐号(例:admin@5111111)");
SetInputValue("input_ sessionkey", "登录令牌");
SetInputValue("input_appkey", "开放平台AppKey");
SetInputValue("input_cid", "cid、通过登录中心返回。例:43");
SetInputValue("input_uid", "uid、通过登录中心返回。例:234622");
function Runimo()
{
var sAccount = GetInputValue("input_account");
var sSessionkey = GetInputValue("input_sessionkey");
var sAppKey = GetInputValue("input_appkey");
var sCid = GetInputValue("input_cid");
var sUid = GetInputValue("input_uid");
var sAryRun = new Array("imo:|",
" -account ",
sAccount.toString(),
" -login_sessionkey ",
sSessionkey.toString(),
" -login_appkey ",
sAppKey.toString(),
" -login_cid ",
sCid.toString(),
" -login_uid ",
sUid.toString());
var sRun = sAryRun.join("");
var objRun = document.getElementById("a_run");
if (objRun)
{
objRun.innerHTML = sRun;
objRun.href = sRun;
}
}
http://www.yxxx.net.cn 西安云翔软件信息科技有限公司