文档章节

OA集成钉钉开发——第六篇——消息推送

小手冰凉丶
 小手冰凉丶
发布于 2016/12/27 13:58
字数 799
阅读 1108
收藏 1

前面我们说到微应用中的免登陆,那么OA的开发的用户信息就可以拿到了。

接下来我们要说的就是OA中的一个重要的功能就是消息的推送,这个功能是OA必不可少的一个可能,集成钉钉的一个很大的优势就是钉钉提供了会话消息的接口,消息的类型,style,都已经封装好了。我们只需要调用就可以了,并且目前钉钉是免费的。

企业会话消息样例:

msg2

发送企业消息接口说明

请求说明

Https请求方式: POST

https://oapi.dingtalk.com/message/send?access_token=ACCESS_TOKEN

参数说明

参数 参数类型 必须 说明
access_token String 调用接口凭证

返回说明

如果收件人、部门或标签不存在,发送仍然执行,但返回无效的部分。

参数 说明
errcode 返回码
errmsg 对返回码的文本描述内容
invaliduser 无效的userid
invalidparty 无效的部门id
forbiddenUserId 因发送消息过于频繁或超量而被流控过滤后实际未发送的userid。未被限流的接收者仍会被成功发送。限流规则包括:1、给同一用户发相同内容消息一天仅允许一次;2、如果是ISV接入方式,给同一用户发消息一天不得超过100次;如果是企业接入方式,此上限为500。
messageId 标识企业消息的id,字符串,最长128个字符

1

2

3

4

5

6

7

8

{

    "errcode": 0,

    "errmsg": "ok",

    "invaliduser": "UserID1|UserID2",

    "invalidparty":"PartyID1",

    "forbiddenUserId": "UserID1|UserID2",

    "messageId":"xxxxxxxxxxxxxxxx"

}

i

 

 

我的代码实现:

假设业务流程:用户提出的项目变更申请,提交完毕后,会向部门经理发送一条企业会话,那么部门经理直接打开会话就可以直接查看项目变更相关信息,并且可以进行审批。

我的界面:

 

在这个界面提交,后台接收,并且推送:

 

@RequestMapping("/add_ItemChange.do")
	@ResponseBody
	public String  add_ItemChange(
			String department,
			String project,
			String orderName,
			String businessProperty,
			String changeProvince,
			String changeCity,
			String outdoor,
			String beginTime,
			String yindaIdentify,
			String contractType,
			HttpServletRequest request){
		
		String user_staffId =(String) request.getSession().getAttribute(GlobalConstant.user_staffId);	
		String staff_user_id =(String) request.getSession().getAttribute(GlobalConstant.user_staff_user_id);
		String user_name =(String) request.getSession().getAttribute(GlobalConstant.user_name);
		
		List <String> now_approveList = ddSendMessageUtil.getApprovers(staff_user_id);
		YoItemChange itemChange  = new YoItemChange();
		itemChange.setIcAskStaffId(user_staffId);
		itemChange.setIcAskStaffDepart(department);
		itemChange.setIcApproveBegin(beginTime);
		itemChange.setIcAskStaffName(user_name);
		itemChange.setIcOutroomWork(outdoor);
		itemChange.setIcChangeProvince(changeProvince);
		itemChange.setIcWorkCity(changeCity);
		itemChange.setIcBusinessProperty(businessProperty);
		itemChange.setIcChangeItem(project);
		itemChange.setIcChangeOrder(orderName);
		itemChange.setIcTitle(user_name+"的"+orderName+"项目变更申请");
		itemChange.setIcApproveRecord(contractType);//数据库字段暂时顶替
		itemChange.setIcCost(yindaIdentify);//数据库字段暂时顶替
		itemChange.setIcNowApproveName(now_approveList.get(0));	
		int i= itemChangeMapper.add(itemChange);
		
		if(i>0){
			DDMessageUtil message = new DDMessageUtil();			
			message.setMessageUrl("http://yexianglei.ngrok.cc/YindaOA/ItemChange/approve_order_page.do?id="+itemChange.getIcSequenceNo());
			message.setPicUrl("/cc");
			message.setToUser("07022352451246847");
			message.setToParty("");
			message.setTitle(user_name+"的项目审批");
			message.setText("您好!请查收!");
			ddSendMessageUtil.sendMessage(message);
			return "success";
		}else{
			 return "error";
		}
	   
	}

这段代码中 ddSendMessageUtil是自行封装的类,实现推送的功能,其他代码就是这个业务上的一些增删改查。

ddSendMessageUtil详解:

	String access_token = DDSendMessageUtil.getAccess_token();
			JSONObject json=HttpsUtil.httpPost(DDSendMessageUtil.baseUrl02+access_token,contentJson);

contentJson 就是消息的json 严格按照api中格式。推送的内容,推送的目标都在内。

先获取access_token,post请求钉钉服务器就可以推送啦!

private static String baseUrl02="https://oapi.dingtalk.com/message/send?access_token=";

过程就是调用钉钉提供的接口,流程很简单,钉钉已经做了很好的封装。

 

© 著作权归作者所有

小手冰凉丶
粉丝 5
博文 60
码字总数 17316
作品 0
合肥
程序员
私信 提问
OA集成钉钉开发——第三篇——添加微应用

在企业管理后天界面中,添加一个微应用,其中包括微应用的名称,图标,对于该企业的组织机构的开发权限,这些都是阿里的权限控制,和我们OA开发无半毛钱关系。其中最重要的就是设置该微应用的...

小手冰凉丶
2016/12/21
46
0
OA集成钉钉开发——第一篇

OA集成钉钉开发,方便管理,省去了APP的开发成本。 首先,注册一个企业号,让钉钉的组织机构中和自己公司的组织机构相对应。在钉钉中的组织机构中,每个人都有自己的staffuserid,staff_id。...

小手冰凉丶
2016/12/21
71
0
OA集成钉钉开发——第四篇——微应用开发

前一篇我们说到从钉钉中登录微应用,因为我们是从微应用的中的入口进入的,那么我们项目中就不需要设置登录,注册,我们通过钉钉就可以拿到你的唯一标识,这个标识在我们的组织机构中,也就是...

小手冰凉丶
2016/12/21
138
0
day60-20180818-流利阅读笔记

钉钉:工作的归工作,生活的…也归工作? 毛西 2018-08-18 1.今日导读 你用过“钉钉”么?被公司要求使用钉钉的感受是如何的呢?这款阿里巴巴旗下的移动办公社交平台在弯道超车微信、为许多企...

飞鱼说编程
2018/08/18
0
2
SaaS市场中最重要的一支,移动办公迎来新的重量玩家——阿里云办公

SaaS市场中最重要的一支,移动办公迎来新的重量玩家——阿里云办公。 时下“钉钉”已成为众多公司移动办公的首要入口。为进一步在移动办公领域赋能中小企业通过云计算技术解决企业管理、业务...

阿里云官方博客
2016/05/13
631
4

没有更多内容

加载失败,请刷新页面

加载更多

Spark Streaming的优化之路——从Receiver到Direct模式

          作者:个推数据研发工程师 学长 1 业务背景 随着大数据的快速发展,业务场景越来越复杂,离线式的批处理框架MapReduce已经不能满足业务,大量的场景需要实时的数据处理结果来...

个推
56分钟前
3
0
壮丽70年·奋斗新时代|蒸妙集团熏蒸中会阴熏蒸的神奇好处

聚结相合之处为会。会阴居两阴间,为督、任、冲三脉的起点,三脉背出两阴之间,会聚阴部,因名会阴。会阴,经穴名。出《针灸甲乙经》。会阴别名屏翳、下极、金门。属任脉。在会阴部,男性当阴...

公益传承
今天
2
0
pentaho-kettle-8.2.0.0-R源码开发环境搭建

1.从Kettle官网下载源码,本文使用的是pentaho-kettle-8.2.0.0-R 下载地址:https://codeload.github.com/pentaho/pentaho-kettle/zip/8.2.0.0-R 2.打开eclipse,选择一个新的工作空间,然后设...

gq_2010
今天
1
0
lua web快速开发指南(7) - 高效的接口调用 - httpc库

httpc库基于cf框架都内部实现的socket编写的http client库. httpc库内置SSL支持, 在不使用代理的情况下就可以请求第三方接口. httpc支持header、args、body、timeout请求设置, 完美支持各种h...

水果糖的小铺子
今天
5
0
通过四道常问面试题,带你了解什么是数据库分库分表

编者语:为了避免被误解为:「手里有把锤子,看什么都是钉子!」,说明一下不是什么业务都适合分布式数据库,更不是用了分布式数据库性能就一定能得到扩展。 其次:本文为纯干货,建议先转发...

老道士
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部