跳转到主要内容
调用本接口发送工作通知消息。

接口调用说明

工作通知消息是以某个应用的名义推送到员工的工作通知消息,例如生日祝福、入职提醒等。可以发送文本、语音、链接等,消息类型和样例可参考消息通知类型
如果接口发送成功,接收人没有收到信息,可调用获取工作通知消息的发送结果查询结果,并对比文档中的返回错误码。
工作通知

使用场景

重要

  • 适用场景:适用于发送通知类的消息,不包含审批任务等。
  • 不适用场景:需要发送一条任务类的通知提醒给员工,比如审批任务等,调用此接口无法实现。这种场景可以使用创建待办接口。

频率限制

超出以下限制次数后,接口返回成功,但用户无法接收到。

详细的限制说明,请参考调用频率限制
  • 企业内部应用发送消息单次最多只能给5000人发送,第三方企业应用发送消息单次最多能给1000人发送。
  • 给同一员工一天只能发送一条内容相同的消息通知。
  • 企业内部应用每天给每个员工最多可发送500条消息通知,第三方企业应用最多可发送100条。
  • 企业内部应用或第三方企业应用发送消息时,每分钟最多有5000人可以接收到消息。

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/topapi/message/corpconversation/asyncsend_v2
HTTP MethodPOST
支持的应用类型appType-企业内部应用appType-第三方企业应用
权限要求permission-qyapi_base-调用企业API时需要具备的基本权限

查询参数

名称类型是否必填示例值描述
access_tokenStringbE74xxxx调用该API的应用凭证。 - 企业内部应用,通过获取企业内部应用的access_token接口获取。 - 第三方企业应用,通过获取第三方企业的access_token接口获取。

请求体

名称类型是否必填示例值描述
agent_idLong123L发送消息时使用的微应用的AgentID。 - 企业内部应用可在开发者后台的应用详情页面查看。 - 第三方企业应用可调用获取企业授权信息接口获取。
userid_listStringuser123,user456接收者的userid列表,最大用户列表长度100。
dept_id_listString123,345接收者的部门id列表,最大列表长度20。 接收者是部门ID时,包括子部门下的所有用户。
to_all_userBooleanfalse是否发送给企业全部用户。 说明 当设置为false时必须指定userid_list或dept_id_list其中一个参数的值。
msgJSON Object{"msgtype":"text","text":{"content":"请提交日报。"}}消息内容,最长不超过2048个字节,支持以下消息通知类型,msgtype 包括: 重要 发送消息时,不支持同时发送多种消息类型。 - text:文本消息 - image:图片消息 - voice:语音消息 - file:文件消息 - link:链接消息 - oa:OA消息 说明 OA消息支持通过status_bar参数设置消息状态文案和颜色,发送后可通过更新工作通知状态栏接口更新消息状态和颜色。 - markdown:Markdown消息 - action_card:卡片消息

请求示例

curl -X POST "https://oapi.dingtalk.io/topapi/message/corpconversation/asyncsend_v2" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=7e0a4xxxx31351' \
-d 'agent_id=123' \
-d 'dept_id_list=123%2C456' \
-d 'msg=%7B+++%5C%22msgtype%5C%22%3A+%5C%22text%5C%22%2C+%5C%22text%5C%22%3A+%7B+++++%5C%22content%5C%22%3A+%5C%22%E5%BC%A0%E4%B8%89%E7%9A%84%E8%AF%B7%E5%81%87%E7%94%B3%E8%AF%B7%5C%22+++%7D+%7D' \
-d 'to_all_user=false' \
-d 'userid_list=123%2C456'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
request.setAgentId(2839445214L);
request.setUseridList("0147282552401293909,manager4974");
request.setToAllUser(false);
OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
msg.setMsgtype("text");
OapiMessageCorpconversationAsyncsendV2Request.Text text = new OapiMessageCorpconversationAsyncsendV2Request.Text();
text.setContent("test123");
msg.setText(text);
request.setMsg(msg);
OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, accessToken);
System.out.println(rsp.getBody());
Python
import dingtalk.api

req=dingtalk.api.OapiMessageCorpconversationAsyncsendV2Request("https://oapi.dingtalk.io/topapi/message/corpconversation/asyncsend_v2")

req.agent_id=123
req.userid_list="123,456"
req.dept_id_list="123,456"
req.to_all_user=false
req.msg="{\"msgtype\":\"text\",\"text\": {\"content\": \"张三的请假申请\"}}"
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
PHP
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiMessageCorpconversationAsyncsendV2Request;
$req->setAgentId("123");
$req->setUseridList("123,456");
$req->setDeptIdList("123,456");
$req->setToAllUser("false");
$msg = new Msg;
$msg->msgtype="text";
$text = new Text;
$text->content="123";
$msg->text = $text;
$req->setMsg($msg);
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/topapi/message/corpconversation/asyncsend_v2");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request req = new OapiMessageCorpconversationAsyncsendV2Request();
req.AgentId = 123L;
req.UseridList = "123,456";
req.DeptIdList = "123,456";
req.ToAllUser = false;
OapiMessageCorpconversationAsyncsendV2Request.MsgDomain obj1 = new OapiMessageCorpconversationAsyncsendV2Request.MsgDomain();
obj1.Msgtype = "text";
OapiMessageCorpconversationAsyncsendV2Request.TextDomain obj2 = new OapiMessageCorpconversationAsyncsendV2Request.TextDomain();
obj2.Content = "123";
obj1.Text= obj2;
req.Msg_ = obj1;
OapiMessageCorpconversationAsyncsendV2Response rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
request_idString4jzllmte0wau请求ID。
errmsgStringok返回码描述。 重要 如果接口发送成功,接收人没有收到信息,可调用获取工作通知消息的发送结果查询结果,并对比文档中的返回错误码。
errcodeNumber0返回码。
task_idNumber256271667526创建的异步发送任务ID。

响应体示例

{
  "errcode":0,
  "task_id":256271667526,
  "request_id":"4jzllmte0wau"
}

错误码

若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。