feat 增加link发送类型
This commit is contained in:
@@ -14,4 +14,7 @@ public interface IDingTalkApi
|
|||||||
[Post("/api/messages/dingtalk/workgrid/workmessage")]
|
[Post("/api/messages/dingtalk/workgrid/workmessage")]
|
||||||
Task SendWorkMessageByWorkGridAsync(JinkoSendWorkMessageRequest request);
|
Task SendWorkMessageByWorkGridAsync(JinkoSendWorkMessageRequest request);
|
||||||
|
|
||||||
|
|
||||||
|
[Post("/api/messages/dingtalk/messageurl")]
|
||||||
|
Task SendMessageUrlAsync(DingTalkMessageUrlRequest request);
|
||||||
}
|
}
|
||||||
10
Src/Dlhis.Basic.Api/Requests/DingTalkMessageUrlRequest.cs
Normal file
10
Src/Dlhis.Basic.Api/Requests/DingTalkMessageUrlRequest.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Dlhis.Basic.Api.Requests;
|
||||||
|
|
||||||
|
public class DingTalkMessageUrlRequest
|
||||||
|
{
|
||||||
|
public string UserCode { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
public string Text { get; set; }
|
||||||
|
public string PicUrl { get; set; }
|
||||||
|
public string MessageUrl { get; set; }
|
||||||
|
}
|
||||||
@@ -28,4 +28,10 @@ public class MessagesController : ControllerBase
|
|||||||
{
|
{
|
||||||
await _jinkoApiService.SendWorkMessageByWorkGridAsync(request);
|
await _jinkoApiService.SendWorkMessageByWorkGridAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost("dingtalk/messageurl")]
|
||||||
|
public async Task SendMessageUrlAsync(DingTalkMessageUrlRequest request)
|
||||||
|
{
|
||||||
|
await _jinkoApiService.SendMessageUrlAsync(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Dlhis.Basic.Common.Message.Requests;
|
||||||
|
|
||||||
|
public class DingTalkMessageUrlRequest
|
||||||
|
{
|
||||||
|
public string UserCode { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
public string Text { get; set; }
|
||||||
|
public string PicUrl { get; set; }
|
||||||
|
public string MessageUrl { get; set; }
|
||||||
|
}
|
||||||
@@ -6,4 +6,6 @@ public interface IJinkoApiService : ISingletonDependency
|
|||||||
{
|
{
|
||||||
Task SendWorkMessageAsync(DingTalkWorkMessageRequest request);
|
Task SendWorkMessageAsync(DingTalkWorkMessageRequest request);
|
||||||
Task SendWorkMessageByWorkGridAsync(DingTalkWorkMessageRequest request);
|
Task SendWorkMessageByWorkGridAsync(DingTalkWorkMessageRequest request);
|
||||||
|
|
||||||
|
Task SendMessageUrlAsync(DingTalkMessageUrlRequest request);
|
||||||
}
|
}
|
||||||
@@ -81,7 +81,7 @@ public class JinkoApiService : IJinkoApiService
|
|||||||
var jsonResponse = await response.Content.ReadAsStringAsync();
|
var jsonResponse = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
var jObject = JObject.Parse(jsonResponse);
|
var jObject = JObject.Parse(jsonResponse);
|
||||||
(jObject.Value<string>("errcode") == "0").ThrowIfFalse(jObject.Value<string>("errmsg"));
|
(jObject.Value<string>("errcode") == "0").ThrowIfFalse(jObject.Value<string>("errmsg"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task SendWorkMessageByWorkGridAsync(DingTalkWorkMessageRequest request)
|
public async Task SendWorkMessageByWorkGridAsync(DingTalkWorkMessageRequest request)
|
||||||
@@ -114,4 +114,43 @@ public class JinkoApiService : IJinkoApiService
|
|||||||
|
|
||||||
return oaInfo.Result.Data;
|
return oaInfo.Result.Data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task SendMessageUrlAsync(DingTalkMessageUrlRequest request)
|
||||||
|
{
|
||||||
|
request.Title.IsEmpty().ThrowIfTrue("发送标题不能为空");
|
||||||
|
request.Text.IsEmpty().ThrowIfTrue("发送内容不能为空");
|
||||||
|
request.UserCode.IsEmpty().ThrowIfTrue("发送用户不能为空");
|
||||||
|
request.MessageUrl.IsEmpty().ThrowIfTrue("消息链接不能为空");
|
||||||
|
request.PicUrl.IsEmpty().ThrowIfTrue("图片链接不能为空");
|
||||||
|
var token = await GetTokenAsync();
|
||||||
|
|
||||||
|
var users = await GetJinkoOaInfoByWorkCodes(new List<string> { request.UserCode });
|
||||||
|
var userIds = users.Select(x => x.Id).Join(",");
|
||||||
|
var body = new
|
||||||
|
{
|
||||||
|
agent_id = _agentId,
|
||||||
|
userid_list = userIds,
|
||||||
|
msg = new
|
||||||
|
{
|
||||||
|
msgtype = "link",
|
||||||
|
link = new
|
||||||
|
{
|
||||||
|
messageUrl = request.MessageUrl,
|
||||||
|
picUrl = request.PicUrl,
|
||||||
|
title = request.Title,
|
||||||
|
text = request.Text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.ToJson();
|
||||||
|
|
||||||
|
var httpClient = _httpClientFactory.CreateClient("jinko.httpclient");
|
||||||
|
var url = $"/topapi/message/corpconversation/asyncsend_v2?access_token={token}";
|
||||||
|
var content = new StringContent(body, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
|
var response = await httpClient.PostAsync(url, content);
|
||||||
|
var jsonResponse = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
|
var jObject = JObject.Parse(jsonResponse);
|
||||||
|
(jObject.Value<string>("errcode") == "0").ThrowIfFalse(jObject.Value<string>("errmsg"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user