1、获得appKey,appSecret,agentId

开发者后台统一登录 - 钉钉统一身份认证

 2、获取access_token

public static void getAccess_token() throws ApiException {
		DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
		OapiGettokenRequest req = new OapiGettokenRequest();
		req.setAppkey(appKey);
		req.setAppsecret(appSecret);
		req.setHttpMethod("GET");
		OapiGettokenResponse rsp = client.execute(req);
		System.out.println(rsp.getBody());
		//{"errcode":0,"access_token":"4ec91c8f213d3236bdf8eaf6ffe95b2d","errmsg":"ok","expires_in":7200}
		JSONObject jsonObject = JSONObject.parseObject(rsp.getBody());
		if("0".equals(jsonObject.get("errcode").toString())){
			System.out.println(jsonObject.get("access_token").toString());
		}
	}

3、根据手机号和access_token获取userId

public static String getDingUserIdByMobile(String phone,String access_token){
		try {
			DingTalkClient client = new DefaultDingTalkClient( "https://oapi.dingtalk.com/topapi/v2/user/getbymobile");
			OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
			req.setMobile(phone);
			OapiV2UserGetbymobileResponse rsp = client.execute(req, access_token);
			System.out.println(rsp.getBody());
			//{"errcode":0,"errmsg":"ok","result":{"userid":"manager5944"},"request_id":"nkdg8k4tx59n"}
			JSONObject jsonObject = JSONObject.parseObject(rsp.getBody());
			String errcode = jsonObject.get("errcode").toString();
			if("0".equals(errcode)){
				JSONObject result = jsonObject.getJSONObject("result");
				System.out.println( result.getString("userid"));
				return  result.getString("userid");
			}
		} catch (ApiException e) {
			e.printStackTrace();
		}
		return "";
	}

4、发送消息

private static void asyncsend_v2(String title,String userid,String content,String access_token){
		try {
			DingTalkClient client = new DefaultDingTalkClient( "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
			OapiMessageCorpconversationAsyncsendV2Request req = new OapiMessageCorpconversationAsyncsendV2Request();
			req.setAgentId(agentId);
			req.setUseridList(userid);
			req.setToAllUser(false);
			OapiMessageCorpconversationAsyncsendV2Request.Msg obj1 = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
			obj1.setMsgtype("markdown");
			OapiMessageCorpconversationAsyncsendV2Request.Markdown obj2 = new OapiMessageCorpconversationAsyncsendV2Request.Markdown();
			obj2.setText(content);
			obj2.setTitle(title);
			obj1.setMarkdown(obj2);
			req.setMsg(obj1);
			OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(req, access_token);
			System.out.println(rsp.getBody());
			//{"errcode":0,"errmsg":"ok","task_id":472427311496,"request_id":"e61f577tk8a6"}
			JSONObject jsonObject = JSONObject.parseObject(rsp.getBody());
			String errcode = jsonObject.get("errcode").toString();
		} catch (ApiException e) {
			e.printStackTrace();
		}
	}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐