求PHP版钉钉发起审批实例

ron_xin 2019-09-01 10:23:50
开发API文档
https://ding-doc.dingtalk.com/doc#/serverapi2/cmct1a

官方JAVA DEMO

DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest();
request.setAgentId(41605932L);
request.setProcessCode("PROC-BY6LI83V-4R8T1CHNUX58O0Z6C55M3-DTQJJGEJ-1");
// 审批流表单参数,设置各表单项值
List<OapiProcessinstanceCreateRequest.FormComponentValueVo> formComponentValues = new ArrayList<OapiProcessinstanceCreateRequest.FormComponentValueVo>();

// 单行输入框
OapiProcessinstanceCreateRequest.FormComponentValueVo vo1 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
vo1.setName("单行输入框示例");
vo1.setValue("单行输入框value");

// 多行输入框
OapiProcessinstanceCreateRequest.FormComponentValueVo vo2 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
vo2.setName("多行输入框示例");
vo2.setValue("多行输入框value");

// 图片
OapiProcessinstanceCreateRequest.FormComponentValueVo vo3 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
vo3.setName("图片示例");
vo3.setValue("[\"http://xxxxx\"]");

// 明细包含控件
// 明细-单行输入框
OapiProcessinstanceCreateRequest.FormComponentValueVo ItemName1 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
ItemName1.setName("明细-单行输入框示例");
ItemName1.setValue("明细-单行输入框value");
// 明细-多行输入框
OapiProcessinstanceCreateRequest.FormComponentValueVo ItemName2 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
ItemName2.setName("明细-多行输入框示例");
ItemName2.setValue("明细-多行输入框value");
// 明细-照片
OapiProcessinstanceCreateRequest.FormComponentValueVo ItemName3 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
ItemName3.setName("明细-图片示例");
ItemName3.setValue("[\"http://xxxxx\"]");

// 明细
OapiProcessinstanceCreateRequest.FormComponentValueVo vo4 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
vo4.setName("明细示例");
vo4.setValue(JSON.toJSONString(Arrays.asList(Arrays.asList(ItemName1, ItemName2, ItemName3))));

// 附件
OapiProcessinstanceCreateRequest.FormComponentValueVo attachmentComponent = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
JSONObject attachmentJson = new JSONObject();
attachmentJson.put("fileId", "6433971140");
attachmentJson.put("fileName", "2644.JPG");
attachmentJson.put("fileType", "jpg");
attachmentJson.put("spaceId", "1635477658");
attachmentJson.put("fileSize", "333");

JSONArray array = new JSONArray();
array.add(attachmentJson);
attachmentComponent.setValue(array.toJSONString());
attachmentComponent.setName("附件");

// 添加单行输入框、多行输入框、图片、明细、附件到表单
formComponentValues.add(vo1);
formComponentValues.add(vo2);
formComponentValues.add(vo3);
formComponentValues.add(vo4);
formComponentValues.add(attachmentComponent);

request.setFormComponentValues(formComponentValues);
request.setApprovers("userid1,userid2");
request.setOriginatorUserId("userid1");
request.setDeptId(-1L);
request.setCcList("userid1,userid2");
request.setCcPosition("START_FINISH");
OapiProcessinstanceCreateResponse response = client.execute(request,accessToken);
...全文
682 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
东风破真破 2019-10-07
  • 打赏
  • 举报
回复
钉钉 流程审批 参数 附件 怎么整的啊
ron_xin 2019-09-02
  • 打赏
  • 举报
回复
收分的,请留言!
ron_xin 2019-09-02
  • 打赏
  • 举报
回复
自己实现了。

    $access_token = getAccessToken(APP_KEY, APP_SECRET);
    //正常情况下access_token有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。
	$process_code = "PROC-EEEEDFF0-E81B-450B-A32E-0FE1CA6457C1";//服务监测计划
	$originator_user_id ="053066671332391176"; //"originator_userid"

	$dept_id ="123098269";//"originator_dept_id"
    $form_component_values =array(array('name' => '级别', 'value' => '部门级'),array('name' => '["监测开始时间","监测结束时间"]', 'value' => '["2019-09-10 10:32","2019-10-10 10:36"]'));

	//$process_code = "PROC-B4274CDB-743D-4001-B3AF-D7CA105EA44C";//服务监察记录
	//$data = array("process_code" => $process_code, "start_time" => time());strtotime('2010-03-24 08:15:42')
	$data = array("process_code" => $process_code, "originator_user_id" => $originator_user_id,"dept_id" => $dept_id,"form_component_values" => $form_component_values);
	print_r($data);
	
    $webhook = "https://oapi.dingtalk.com/topapi/processinstance/create?access_token=" . $access_token;
    $result = request_by_curl($webhook, json_encode($data));
啊啊啊啊嗯嗯 2019-09-02
  • 打赏
  • 举报
回复

20,358

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧