using System.Text;
using Fantasy;
using Newtonsoft.Json;
namespace NBF;
public static class DingTalkHelper
{
private static readonly HttpClient _httpClient = new HttpClient();
public static async Task SendCAPTCHA(string code)
{
DingTalkMarkdownData dingTalkTestData = new DingTalkMarkdownData
{
markdown = new DingTalkMarkdownItem
{
title = "NB验证码",
text = $"验证码:{code}"
}
};
await SendMessageAsync("23457f9c93ac0ae909e1cbf8bcfeb7e0573968ac2d4c4b2c3a961b2f0c9247cb", dingTalkTestData);
}
///
/// 通用消息发送方法
///
///
/// 消息对象
///
private static async Task SendMessageAsync(string token, DingTalkMarkdownData message)
{
try
{
var json = JsonConvert.SerializeObject(message);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response =
await _httpClient.PostAsync($"https://oapi.dingtalk.com/robot/send?access_token={token}", content);
var responseContent = await response.Content.ReadAsStringAsync();
Log.Info($"钉钉={responseContent}");
// 检查响应是否成功
return response.IsSuccessStatusCode;
}
catch (Exception ex)
{
Console.WriteLine($"发送飞书消息失败: {ex.Message}");
return false;
}
}
[Serializable]
public class DingTalkMarkdownData
{
public string msgtype { get; set; } = "markdown";
public DingTalkMarkdownItem markdown { get; set; }
}
[Serializable]
public class DingTalkMarkdownItem
{
public string title { get; set; }
public string text { get; set; }
}
}