1. 第三方组织为移动报表的提供的接口
API接口地址均采用统一的签名算法进行鉴权,具体的签名过程如下
/*PHP代码示例*/
$timestamp = time();
$api_token = 'mykey';
$salt = 'report';
$channel_id = 3;
$signature= sha1($timestamp . $api_token .$salt . $channel_id);
api_token 注册服务商时生成,由第三方提供,参考 服务商注册
timestamp 单位为秒,从1970年1月1日至今的秒数
salt = report 固定值为report
channel_id 渠道编号,参考 预分配信息表
接口需要自行根据此算法进行接口的鉴权。
1.1. 全量获取公司数据
接口参数
{
"signature": "",//签名信息
"timestamp": "",//时间戳
"channel_id": "",//渠道编号
"channel_code": ""//第三方组织的租户编码
}
接口返回值
{
"success": 0,//0=>失败,1=>成功
"message": "",//正常情况为空,否则显示错误原因
"data":[
{
"id": "11b11db4-e907-4f1f-8835-b9daab6e1f23",
"name": "总部",
"parent_id": "",
"sort": "01",
"is_end_company": "0"
},
{
"id": "6ecee86a-87cc-4890-ac64-20fb314c78f0",
"name": "华南区域",
"parent_id": "11b11db4-e907-4f1f-8835-b9daab6e1f23",
"sort": "02",
"is_end_company": "0"
},
{
"id": "499e3c90-df39-47ca-b2f8-df37badc34e1",
"name": "武汉公司",
"parent_id": "6ecee86a-87cc-4890-ac64-20fb314c78f0",
"sort": "03",
"is_end_company": "1"
}
]
}
注:为了区分总部与区域,总部的sort应该最小。
1.2. 全量获取项目数据
接口参数
{
"signature": "",//签名信息
"timestamp": "",//时间戳
"channel_id": "",//渠道编号
"channel_code": ""//第三方组织的租户编码
}
接口返回值
{
"success": 0,//0=>失败,1=>成功
"message": "",//正常情况为空,否则显示错误原因
"data":[
{
"id": "12829ad4-6a63-e511-80c1-00155d0a6f23",
"name": "四季花园",
"parent_id": "e966f47e-e64a-47e2-a537-8dcba02087fa",//如果是一级项目,parent_id为末级公司的id
"sort": "01",
"is_end_proj": "0"
},
{
"id": "4753da30-6b63-e511-80c1-00155d0a6f23",
"name": "四季花园-一期",
"parent_id": "12829ad4-6a63-e511-80c1-00155d0a6f23",//如果是末级项目,parent_id为父级项目的id
"sort": "02",
"is_end_proj": "1"
},
{
"id": "a4714b07-d127-e611-80c5-00155d0a6f23",
"name": "四季花园-二期",
"parent_id": "12829ad4-6a63-e511-80c1-00155d0a6f23",
"sort": "03",
"is_end_proj": "1"
}
]
}
1.3. 获取指定用户的数据权限
接口参数
{
"signature": "",//签名信息
"timestamp": "",//时间戳
"channel_id": "",//渠道编号
"channel_code": "",//第三方组织的租户编码
"user_guid":""//用户guid
}
接口返回值
{
"success": 0,//0=>失败,1=>成功
"message": "",//正常情况为空,否则显示错误原因
"data":{
"company_list": [
"12829ad4-6a63-e511-80c1-00155d0a6f23",
"39dde7f4-d7b2-25f6-0345-66a27cacb772",
"39dad300-e5e5-e85f-fd71-5e1f287e8f8b"
],
"project_list": [
"12829ad4-6a63-e511-80c1-00155d0a6f23",
"39dde7f4-d7b2-25f6-0345-66a27cacb772",
"39dad300-e5e5-e85f-fd71-5e1f287e8f8b"
]
}
}
1.4. 获取指定用户有权限的报表
接口参数
{
"signature": "",//签名信息
"timestamp": "",//时间戳
"channel_id": "",//渠道编号
"channel_code": "",//第三方组织的租户编码
"user_guid":""//第三方用户guid
}
接口返回值
{
"success": 0,//0=>失败,1=>成功
"message": "",//正常情况为空,否则显示错误原因
"data":[10000,1223,55621]//有权限的报表编号
}
2. 移动报表为第三方组织提供的接口
域名说明
测试环境域名: https://qy-ci.fdccloud.com
预发布环境域名: https://qy-qa.fdccloud.com
正式环境域名: https://www.fdccloud.com
2.1. 返回第三方组织的报表ID和名称,用于报表授权
请求地址
{域名}/report/api/third/get-third-report
接口参数
"channel_id":"", //渠道编号
"channel_code":"" //第三方组织的租户编码
"app_code":"" //第三方应用code
第三方应用code举例
"MobileCheckRoom"=>获取验房报表,"PropertyBase"=>获取云物业报表,如果为空则不分应用返回该渠道下所有的报表
调用示例
接口返回值
{
"success": 0,//0=>失败,1=>成功
"message": "",//正常情况为空,否则显示错误原因
"data":[
{
"report_id":1,
"report_name":"首页",
"view_url":"/report-micro/home/release/index?reportId=XXXX",
"is_system":1, //是否系统级
"create_time":"2017-01-01" //创建时间
},
{
"report_id":1,
"report_name":"房间统计",
"view_url":"/report-micro/home/release/index?reportId=XXXX",
"is_system":1, //是否系统级
"create_time":"2017-01-01" //创建时间
}
]
}
2.2. 第三方打开移动报表单点登录
请求地址
{报表地址}?__from=third_party_sso&_authcode=xxx&_channel_id=xxx
参数说明
参数 | 描述 |
---|---|
__from | 参数值固定为 third_party_sso,注意__from前面是两个下划线 |
_channel_id | 为注册时返回的渠道ID |
_authcode | 用于识别当前第三方组织用户身份 |
_authcode = urlencode(base64_encode(AES({channel_id:xxx, channel_code:xxx, user_guid:xxx, timestamp:xxx}, aes_token))) 我方会话的默认过期时间为30分钟,建议每次跳转都传递 _authcode 参数
_authcode 参数说明
参数 | 描述 |
---|---|
channel_id | 渠道编号 |
channel_code | 第三方组织的租户编码 |
user_guid | 第三方用户guid |
timestamp | 时间戳 |
aes_token | 注册套件时生成,详见服务商注册 |