1. 接口调用PHP示例
2. 获取corpid和code
1、由云助手跳转到第三方网页H5应用的时候在header头中包含了corpid和code信息,第三方应用可以从header中获取到这两个参数。见下图
注:code有效期为1分钟
获取header信息(PHP参考代码):
$code = isset(\Yii::$app->request->headers["code"]) ?
\Yii::$app->request->headers["code"] : I('__sso_code');
$corpid = isset(\Yii::$app->request->headers["corpid"]) ?
\Yii::$app->request->headers["corpid"] : I('tenant_id');
部分手机可能会存在无法解析header头信息的问题,接入方可以做下兼容处理,云助手APP在打开应用时,同时会在 url中追加参数"__sso_code","tenant_id",此参数的值与header中"code","corpid"的值等价
3. 通过云助手corpid换取异构系统corpid
接口地址:
/api/open1/get-third-corpid?corpid=@corpid&appsecret=@appsecret
请求方式:
GET
参数说明
参数 | 说明 |
---|---|
corpid | 云助手corpid,从header中获取,参考获取corpid和code |
appsecret | 异构系统应用秘钥key 参考注册应用,app_key字段 |
返回值格式
成功
{
"errcode": 0,
"errmsg": “ok”,
"data":{
"corpid": jq2
}
}
4. 获取access_token
调用云助手所有接口,第一步都需要先换取access_token
接口地址:
/api/open1/get-access-token?corpid=@corpid&agentid=@agentid&appsecret=@appsecret
请求方式:
GET
参数说明
参数 | 说明 |
---|---|
corpid | 异构系统租户code,原生APP可以通过云助手SDK获取,网页H5应用调用接口云助手corpid换取异构系统corpid获取 |
agentid | 异构系统应用code 参考注册应用,third_app_code字段 |
appsecret | 异构系统应用秘钥key 参考注册应用,app_key字段 |
返回值格式
成功
{
"access_token":"xxxxxxxxxxx",//token
"expires_in":7200 //有效期 秒
}
失败
{
“errcode”:10
"errmsg":'错误信息'
}
5. 单点登录接口
5.1. 原生APP单点登录
接口地址
/api/open1/verify-login-token?access_token=@access_token
请求方式
POST
参数说明
参数 | 说明 |
---|---|
tenant_code | 异构系统租户code 参考AppCloud插件 |
user_code | 异构系统用户code 参考AppCloud插件 |
agent_id | 异构系统应用code 参考AppCloud插件 |
customer_id | 租户唯一标识(未使用),参考AppCloud插件 |
timestamp | 时间戳 参考AppCloud插件 |
login_token | 登录验证token 参考AppCloud插件 |
{
tenant_code : "@tenant_code",
user_code : "@user_code",
agent_id : "@agent_id",
customer_id : "@customer_id",
timestamp : "@timestamp",
login_token : "@login_token",
}
返回值格式
成功
{
"errcode": 0,
"errmsg": “ok”
}
失败
{
"errcode": 10,
"errmsg": “错误信息”
}
备注
- errcode 等于0是成功,其他值为失败code
- 传递参数中的login_token有效期为1分钟
5.2. 网页H5单点登录
接口地址
/api/open1/get-third-user?access_token=@access_token
请求方式
POST
参数说明
参数 | 说明 |
---|---|
code | 云助手身份代码,有效期为1分钟,获取方式参考这里 |
{
code : "@code",
}
返回值格式
成功
{
"errcode": 0,
"errmsg": “ok”,
"data":{
"agent_id": “rental”
"tenant_code": “jq2”,
"user_code": “czy”
}
}
失败
{
"errcode": 10,
"errmsg": “错误信息”
}
返回字段说明
字段 | 说明 |
---|---|
agent_id | 异构系统应用code 参考注册应用,third_app_code字段 |
tenant_code | 异构系统租户code(在云助手新增组织时填入) |
user_code | 异构系统用户code 参考用户获取接口 |
备注
- errcode 等于0是成功,其他值为失败code
- 传递参数中的code有效期为1分钟
6. 消息推送接口
接口地址
/api/open1/send-message?access_token=xxxx
请求方式
POST
参数说明
参数 | 类型 | 说明 |
---|---|---|
touser | String | 必须,异构系统组织用户guid,多个用户用"竖线"隔开 |
agentid | string | 必须, 第三方应用code 参考注册应用,third_app_code字段 |
msgtype | String | 必须,消息类型。目前支持text、news、OA类型 |
text、news、oa | Object | 必须,消息实体 |
text类型消息格式
{
"touser": "39d72ade-dad7-4724-9a98-ff7a0df63cfb|39d72ade-dad7-4724-9a98-ff7a0df63654",
"agentid": "MobileCheckRoom",
"msgtype": "text",
"text": {
"content": "你有一个待办事项,点击<a herf='http://xxxxx'> 查看详情</a>"
}
}
news类型消息格式(支持单图文和多图文两种模式)
{
"touser": "39d72ade-dad7-4724-9a98-ff7a0df63cfb",
"agentid": "MobileCheckRoom",
"msgtype": "news",
"news": {
"articles": [
{
"title": "待办提醒",
"description": "亲爱的主人,您今天的待办事项如下:\r\n即将签约的客户有 3 位,\r\n请您及时进行催办,加油哦~~",
"url": "http://qy-ci.mysoft.com.cn/sale-micro/my56a9c966df069/remind/contract/zygw?p_TaskWakeId=1&UserGuid=7A916792-56C5-11E5-A33B-00155D0AB842&TaskIdentifier=1&__from=wx",
"senddate": "2015-09-11 10:10:00"
}
]
}
}
oa类型消息格式
{
"touser": "39d72ade-dad7-4724-9a98-ff7a0df63cfb",
"agentid": "MobileCheckRoom",
"msgtype": "oa",
"oa": {
"message_url": "http://dingtalk.com",
"head": {
"bgcolor": "FFBBBBBB",
"text": "头部标题"
},
"body": {
"title": "正文标题",
"form": [
{
"key": "姓名:",
"value": "张三"
}
],
"rich": {
"num": "15.6",
"unit": "元"
},
"content": "大段文本",
"file_count": "3",
"author": "李四",
"relation": "3个",
"ywstatus": {
"text": "已归档",
"color": "FFBBBBBB"
},
"mark": [
{
"bgcolor": "FFFFFF",
"text": "会议"
}
]
}
}
}
返回值格式
成功
{
"errcode": 0,
"errmsg": “ok”
}
失败
{
"errcode": 10,
"errmsg": “错误信息”
}
备注
- errcode 等于0是成功,其他值为失败code