|
|
@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
package com.dsideal.FengHuang.DingTalk.Test;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.dingtalk.api.DefaultDingTalkClient;
|
|
|
|
|
|
|
|
import com.dingtalk.api.DingTalkClient;
|
|
|
|
|
|
|
|
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
|
|
|
|
|
|
|
|
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
|
|
|
|
|
|
|
|
import com.dsideal.FengHuang.DingTalk.Util.DingTalkCommon;
|
|
|
|
|
|
|
|
import com.jfinal.kit.PropKit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//开发文档
|
|
|
|
|
|
|
|
//https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
接口调用量说明
|
|
|
|
|
|
|
|
钉钉标准版接口累计可调用次数为1万次/月,当前接口会消耗调用次数。若该调用量无法满足需求,你可升级钉钉专业版(Open API调用量50万次/月)
|
|
|
|
|
|
|
|
或钉钉专属版(Open API调用量500万次/月)扩容调用次数。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
发送工作通知消息频率限制
|
|
|
|
|
|
|
|
企业内部应用发送消息单次最多只能给5000人发送,第三方企业应用发送消息单次最多能给1000人发送。
|
|
|
|
|
|
|
|
(1)给同一员工一天只能发送一条内容相同的消息通知。
|
|
|
|
|
|
|
|
(2)企业内部应用每天给每个员工最多可发送500条消息通知,第三方企业应用最多可发送100条。
|
|
|
|
|
|
|
|
(3)企业内部应用或第三方企业应用发送消息时,每分钟最多有5000人可以接收到消息。
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public class SendMessage {
|
|
|
|
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
|
|
|
|
|
|
DingTalkCommon.Start();
|
|
|
|
|
|
|
|
//accessToken
|
|
|
|
|
|
|
|
final String appKey = PropKit.get("appKey");
|
|
|
|
|
|
|
|
String appSecret = PropKit.get("appSecret");
|
|
|
|
|
|
|
|
Long agentId = PropKit.getLong("agentId");
|
|
|
|
|
|
|
|
String accessToken = DingTalkCommon.getAccessToken(appKey, appSecret);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
|
|
|
|
|
|
|
|
OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
|
|
|
|
|
|
|
|
//发送消息时使用的微应用的AgentID
|
|
|
|
|
|
|
|
request.setAgentId(agentId);
|
|
|
|
|
|
|
|
//user123,user456
|
|
|
|
|
|
|
|
//接收者的userid列表
|
|
|
|
|
|
|
|
//刘丽丽:UserID:87524 ,同时,也是云平台中的person_id=87524,这个是从数据库中同步上去的
|
|
|
|
|
|
|
|
//request.setUseridList("87524");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//黄海:UserID:30376212031287987,因为黄海不是隶属于103中学,而是隶属于阿远云创科技公司,这个UserID并不是我从数据库表中同步上去的
|
|
|
|
|
|
|
|
request.setUseridList("30376212031287987");
|
|
|
|
|
|
|
|
request.setToAllUser(false);
|
|
|
|
|
|
|
|
OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
|
|
|
|
|
|
|
|
//action_card
|
|
|
|
|
|
|
|
msg.setActionCard(new OapiMessageCorpconversationAsyncsendV2Request.ActionCard());
|
|
|
|
|
|
|
|
msg.getActionCard().setTitle("我是美丽的提醒标题");
|
|
|
|
|
|
|
|
msg.getActionCard().setMarkdown("### 我是大标题");
|
|
|
|
|
|
|
|
msg.getActionCard().setSingleTitle("我是小标题4");
|
|
|
|
|
|
|
|
msg.getActionCard().setSingleUrl("http://www.baidu.com");//我是点击后链接的地址
|
|
|
|
|
|
|
|
msg.setMsgtype("action_card");
|
|
|
|
|
|
|
|
request.setMsg(msg);
|
|
|
|
|
|
|
|
OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, accessToken);
|
|
|
|
|
|
|
|
System.out.println(rsp.getBody());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|