应用为 E应用之企业内部应用
应用首页有秘钥信息
钉钉开发文档 :
https://open-doc.dingtalk.com/microapp/serverapi2/pgoxpy
SDK 下载 :
http://open-dev.dingtalk.com/download/openSDK/java
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.request.OapiUserGetRequest;
import com.dingtalk.api.request.OapiUserSimplelistRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.dingtalk.api.response.OapiUserGetResponse;
import com.dingtalk.api.response.OapiUserSimplelistResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
* @Auther: liyue
* @Date: 2018/10/12 11:58
* @Description: 钉钉发送工作消息
public class SendDingDingMsgUtil {
private static String APPKEY = "xxx";
private static String APPSECRET = "xxx";
private static Long AGENT_ID = xxx;
private static Map<String, String> map = new HashMap<>(16);
public static void main(String[] args) throws Exception {
send("147****9309", "哈喽...");
* 根据手机号码发送工作消息
* @param mobile
* @param content
public static void send(String mobile, String content) {
try {
String accessToken = getAccessToken();
if (map == null) {
initUserList(accessToken);
int userListCount = getUserListCount(accessToken);
if (userListCount > map.size()) {
initUserList(accessToken);
senWorkMsg(accessToken, map.get(mobile), content);
} catch (Exception e) {
e.printStackTrace();
* 获取 accessToken
* @return
* @throws Exception
private static String getAccessToken() throws Exception {
DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey(APPKEY);
request.setAppsecret(APPSECRET);
request.setHttpMethod("GET");
OapiGettokenResponse response = client.execute(request);
String accessToken = response.getAccessToken();
return accessToken;
* 发送工作消息
* @param accessToken
* @param userId
* @param content
* @throws Exception
private static void senWorkMsg(String accessToken, String userId, String content) throws Exception {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
request.setUseridList(userId);
request.setAgentId(AGENT_ID);
request.setToAllUser(false);
OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
msg.getOa().getHead().setText("head");
msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
msg.getOa().getBody().setContent(content);
msg.setMsgtype("oa");
request.setMsg(msg);
OapiMessageCorpconversationAsyncsendV2Response response = client.execute(request, accessToken);
* 部门用户列表
* @param accessToken
* @throws Exception
private static void initUserList(String accessToken) throws Exception {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
OapiUserSimplelistRequest request = new OapiUserSimplelistRequest();
request.setDepartmentId(1L);//根部门
request.setOffset(0L);// 不设置分页获取所有用户
request.setSize(10L);//不设置分页获取所有用户
request.setHttpMethod("GET");
OapiUserSimplelistResponse response = client.execute(request, accessToken);
List<OapiUserSimplelistResponse.Userlist> userlist = response.getUserlist();
for (OapiUserSimplelistResponse.Userlist user : userlist) {
String userId = user.getUserid();
String mobile = getMobile(accessToken, userId);
map.put(mobile, userId);
* 获取部门用户数量
* @param accessToken
* @return
* @throws Exception
private static int getUserListCount(String accessToken) throws Exception {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
OapiUserSimplelistRequest request = new OapiUserSimplelistRequest();
request.setDepartmentId(1L);
request.setOffset(0L);
request.setSize(10L);
request.setHttpMethod("GET");
OapiUserSimplelistResponse response = client.execute(request, accessToken);
List<OapiUserSimplelistResponse.Userlist> userlist = response.getUserlist();
return userlist.size();
* 根据 userId 获取手机号
* @param accessToken
* @param userId
* @return
* @throws Exception
private static String getMobile(String accessToken, String userId) throws Exception {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get");
OapiUserGetRequest request = new OapiUserGetRequest();
request.setUserid(userId);
request.setHttpMethod("GET");
OapiUserGetResponse response = client.execute(request, accessToken);
return response.getMobile();
钉钉开放平台 : https://open.dingtalk.com/应用为 E应用之企业内部应用应用首页有秘钥信息钉钉开发文档 : https://open-doc.dingtalk.com/microapp/serverapi2/pgoxpySDK 下载 : http://open-dev.dingtalk.com/download/openSDK/javaimport ...
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
后台会获的用户的openid和session_key
getPho
通过后台的AppKey和AppSecret获取到请求的access_token:
文档地址:https://ding-doc.dingtalk.com/document#/org-dev-guide/obtain-access_token
2. 获取token请求接口
3. 4. @param appKey 密钥
5. @param appSecret 密钥
6. @return token
首先按照要求的模板制作Excel文档,然后上传之服务器,并读入到数据库中
本文章针对,先将Excel文档存在服务器中,然后再将存放文档的路径传到Service层,最后写入到数据库当中,具体看一下代码:
前端代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="h
$param['message']] = "产品已经审核通过了,请查看!"'; //发送信息
$param['mobiles'] = '176****7056'; //发送手机号
$isAtAll = fa...
BUG(3) : Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer';
31788