版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

例子  黄超彬 4月20日 更新wiki+视频

1.流程图:


2.启用

系统设置-服务器设置-是否开启数据推送 打开即可

...

(2)匹配规则/适用范围 → 决定哪些用户的消息能够被“数据推送”功能推送出去。

4.自定义需要发送的字段

如下:


字段说明字段说明
标题可以用来标记同步的OA所属部门分类管理, 支持适用左组织树筛选
消息类别通知,待办,全部(message 的分类), 其他(非消息类)是否启动.
请求方式http请求方式(webService可以忽略,默认值就好)消息事件新增, 编辑, 删除, 全部, 适配不同消息的动作而发送消息到不同的url
配置字段发送格式配置字段发送格式请求头

{"Content-Type": "application/json"}

url地址对接链接部门适用范围消息接收人部门过滤
岗位适用范围消息接收手岗位过滤人员适用范围消息接收人过滤
关联对象相当于入口条件,消息类别是其他的时候使用请求数据json请求的json属性数据
请求数据data请求的data属性数据请求数据params请求的params参数(自动追加到url上)
请求数据默认值会自动追加数据到data中认证配置发送请求认证配置(相当于获取是否可以调用和调用的令牌,更安全)
请求结果处理请求发送完毕后,可以回调API,设置缓存,判断是否调用成功重试机制失败后重新发送,支持配置失败后提醒,重试几次(最大10次,默认两次),每次失败执行间隔
请求url_params会在请求时,自动替换链接上的参数,和params参数同一属性 


配置字段发送格式说明,  

最外层 关键字 (新版参数如json_v2在下文“实际配置案例”中给出。)

字段key示例作用
json(旧版参数,请减少使用,新版为json_v2)

{"json":

"common":

{ "type": 1, "appName": "014", "modelId": "014001", "modelName": "组织人事" }

}

作为requests, json字段参数
data(旧版参数,请减少使用,新版为data_v2)

{"data":

"common":

{ "type": 1, "appName": "014", "modelId": "014001", "modelName": "组织人事" }

}

作为requests, data字段参数
params(旧版参数,请减少使用,新版为params_v2)

{"params":

"common":

{ "type": 1, "appName": "014", "modelId": "014001", "modelName": "组织人事" }

}

作为requests, params字段参数
url_params(旧版参数,请减少使用,新版为url_params_v2)

{"url_params":

"common":

{ "type": 1, "appName": "014", "modelId": "014001", "modelName": "组织人事" }

}

作为url参数
auth_info{
    "url": "https://qyapi.weixin.qq.com/cgi-bin/gettoken",
    "method": "GET",
    "params": {
        "corpid": "ww5de3ed5917bds62a",
        "corpsecret": "rBZrTHJsdTlhoPsDAOohj2k4JgXVKshJjdAZnM(已脱敏)"
    },
    "headers": {},
    "auth_key": "access_token",
    "location": "params",
    "expire_time": 1500,
    "get_token_field": ["access_token"]
}

请求认证信息

url:请求接口

method:请求类别 POST,GET等

params:接口参数

headers:请求头

auth_key:用于字段映射的key

location:返回值是添加到请求的params参数上还是请求头上(params,header,两个值)

expire_time:设置缓存

get_token_field:从请求返回数据的 ["access_token"] 中获取数据,赋值给auth_key,用于正式请求的准备数据



proxy_number hcm_proxy_xxxxx请求 代理配置,一般可以不配置,钉钉建议配置
success_response_define

1.返回结果校验:{"success_response_define": "=response_check([\"result\", \"success\"], \"true\")"}


2."response_cache_config": {
        "callback_api": "private.test_api_i",
        "callback_param": [{
            "map": "action",
            "field": ["response", "result", "result", "action"],
            "default": "new"
        }, {
            "map": "message_id",
            "field": ["response", "result", "result", "id"],
            "default": "111"
        }, {
            "map": "message_id",
            "field": ["data", "id"],
            "default": "111"
        }],
        "success_response_key": ["result", "success"],
        "success_response_value": "True"
    }

1.请求之后,对返回结果判断是否成功,例子中,response_check是公式,[\"result\", \"success\"]是返回结果中的resilt下面的success 是true认为是成功,其他的都是失败;

2.请求成功之后,后续还需要调接口做其他事。callback_api:后续操作所需要调用的接口;callback_param:接口参数;

success_response_key:接口返回结果

success_response_value:结果中的字段判断是成功的标识

third_type

"third_type": "ding"

指明第三方类型,只有标准第三方集成才配置(钉钉,企业微信,云加,飞书)

unique_third_key

"unique_third_key": ["user_info", "unionid"]

获取第三方app发送消息需要的字段,一般是获取系统绑定信息的
第三方用户id,用于发消息
rtype

"rtype": "content"

默认请求的返回值是json(), 可以指定 text, content 等,用于解析请求返回的返回值,在请求体的哪个属性。
resend_params

"resend_params": {
        "json": {...},
        "old_json": true,
        "search_url": "https://xxxx.hcmcloud.com/api/private.hcm_release_message_check",
        "old_url_params": true,
        "success_response_define": "=response_check([\"result\", \"existence\"], \"True\")"
    }

如果第一次发送失败再次发送需要换做校验,search_url:校验请求的地址;old_url_params:是否原来的url参数,false的话需要重新在此处配置url_params;success_response_define:请求完成之后判断是否成功;

old_json:如果是true,默认还是使用原来的json,否则就需要在这里重新配置json参数

(暂时只支持了json的处理,后续加上data的)

resend_rule

"resend_rule": [{
        "to": ["手机号"],
        "time": 5,
        "handler": "",
        "message": "失败消息数:{id}:{content}"
    }, {
        "to": ["手机号"],
        "time": 20,
        "handler": "",
        "message": "失败消息数:{id}:{content}"
    }]

第一次发送失败之后,默认会重新在推送一次,如果配置有这个重新推送规则,重推失败之后,会给这个手机号发送通知,手机号是固定值,配置了多少次就会重新推送多少次
sub_map_id

"sub_map_id": 19

新增的推送配置ID,在编辑时候使用
request_type

hcminnerapi

调用外部接口时无需配置,调用内部接口需要配置

send_check (测试中,预计发版时间12.16)

{
        "is_task_done": "=IF(is_task_done==2,True,False)",

         "content": "=is_value_contains(content, \"导出|导入|计算|下载\", False)",

          ... ... 

         "check_type": "and"// 上面列的多个条件是且判断(and)还是或判断(填写"or"), 默认且判断


}

根据里面的条件判断是否要发送。key随便写,关键是后面的判断公式。

左例中两个判断条件,一个是IF(is_task_done==2,True,False),表示消息的is_task_done属性(待办状态)为2(已办)时返回True;另一个是is_value_contains(\"导出|导入|计算|下载\", content, False),表示消息内容中包含“导出|导入|计算|下载”时,报错,即返回False。

check_type为and时,上述条件同时为True,才会发送,否则不进行数据推送。check_type为or时,上述条件只要有一个返回True,就可以推送消息。


5.实际配置案例(系统的数据都可以推送到第三方,不限于消息):

...

单点云函数案例:个性化登录(查看 2.非标准单点模式)


3.认证信息配置详情(看情况配置)

auth_infourl请求token的url
method请求方法
headers请求头
params请求参数 如企业微信为{"corpid": "****", "corpsecret": "****"}
data一般不用填
json一般不用填
get_token_field解析请求响应体得到token, 类型为列表 , 如 ["token"]
expire_timetoken缓存时间, 例如token有效期为30分钟 此处可以写 1500
auth_keytoken在认证时的key 如 "token"
proxy_number指定请求代理
locationdata, json, params, headers, 需要将信息添加到这些字段里面去
rtype默认请求的返回值是json(), 可以指定 text, content 等

案例:

代码块
languagejson
linenumberstrue
collapsetrue
{
    "url": "https://qyapi.weixin.qq.com/cgi-bin/gettoken",
    "method": "GET",
    "params": {
        "corpid": "ww5dse3asebcab462a",
        "corpsecret": "rBZrTHww5debc5sd917bAvD2dP_Qa5k4JgsnM(脱敏处理)"
    },
    "headers": {},
    "auth_key": "access_token",
    "location": "params",
    "expire_time": 1500,
    "get_token_field": ["access_token"]
}

...