首页 > 编程语言 >C#发送内容到钉钉消息

C#发送内容到钉钉消息

时间:2024-10-29 18:59:02浏览次数:1  
标签:Console string C# System 发送 内容 using new customKeyword

一、前提工作:配置钉钉机器人

见链接:https://star-302.blog.csdn.net/article/details/135649084

下边的代码,钉钉安全设置使用“自定义关键词”

 

二、以text格式发送消息到钉钉

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using static System.Net.Mime.MediaTypeNames;

class Program
{
    static async Task Main(string[] args)
    {
        // 钉钉机器人的Webhook URL
        string webhookUrl = "https://oapi.dingtalk.com/robot/send?access_token=6fbcb84ec92786c94f8513c0338a88aca9dfaaf56ddbeef40ddfgdf52451c";//这里是钉钉机器人复制过来的

        // 自定义关键字
        string customKeyword = "MY_CUSTOM_KEYWORD";//钉钉机器人安全设置中配置

        //**方法一:text格式 * *"
        // 测试者和当前时间
        string tester = "张三";
        DateTime testTime = DateTime.Now;
         测试结果
        string functionalTest = "失败";

        // 构建消息内容,将关键字嵌入到消息体中
        var content = new
        {
            msgtype = "text",
            keyword = customKeyword,
            text = new
            {
                content = $"测试: {customKeyword}\r\n" +
               $"测试者:{tester}\r\n" +
               $"当前时间:{testTime}\r\n" +
               $"测试结果:{functionalTest}\r\n"
            },
            at = new { atMobiles = new string[] { }, isAtAll = true }
        };

        // 序列化JSON数据
        string jsonContent = JsonConvert.SerializeObject(content);

        // 发送POST请求
        using (var client = new HttpClient())
        {
            var requestContent = new StringContent(jsonContent, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync(webhookUrl, requestContent);
            if (!response.IsSuccessStatusCode)
            {
                Console.WriteLine($"Failed to send message: {response.StatusCode}");
            }
            else
            {
                Console.WriteLine("Message sent successfully.");
            }
        }
        Console.ReadLine();
    }
}

测试结果:

 

三、以markdown格式发送消息到钉钉

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using static System.Net.Mime.MediaTypeNames;

class Program
{
    static async Task Main(string[] args)
    {
        // 钉钉机器人的Webhook URL
        string webhookUrl = "https://oapi.dingtalk.com/robot/send?access_token=6fbcb84ec92786c94f8513c0338a88acab76aae52451c";

        // 自定义关键字
        string customKeyword = "MY_CUSTOM_KEYWORD";

        //**方法二:markdown格式**"
        // 测试者和当前时间
        string tester = "张三";
        DateTime testTime = DateTime.Now;

        // 测试结果
        bool functionalTest = true;
        // 构建Markdown消息
        string markdownText = $@"
          #### 测试结果{customKeyword}:
      - **测试者**: {tester}
      - **当前时间**: {testTime:yyyy-MM-dd HH:mm:ss}
      - **测试结果**: {(functionalTest ? "**<font color='#008000'>SUCCESS</font>**" : "**<font color='#FF0000'>FAIL</font>**")} ";
     //测试结果加粗、SUCCESS绿色显示,FAIL红色显示 // 构建消息内容 var content = new { msgtype = "markdown", keyword = customKeyword, markdown = new { title = "测试结果", text = markdownText }, at = new { atMobiles = new string[] { }, isAtAll = true } }; // 序列化JSON数据 string jsonContent = JsonConvert.SerializeObject(content); // 发送POST请求 using (var client = new HttpClient()) { var requestContent = new StringContent(jsonContent, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(webhookUrl, requestContent); if (!response.IsSuccessStatusCode) { Console.WriteLine($"Failed to send message: {response.StatusCode}"); } else { Console.WriteLine("Message sent successfully."); } } Console.ReadLine(); } }

测试结果:

 

标签:Console,string,C#,System,发送,内容,using,new,customKeyword
From: https://www.cnblogs.com/lgx5/p/18514177

相关文章

  • YOLO11改进 | 卷积模块 | 无卷积步长用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......
  • LeetCode15:三数之和
    原题地址:.-力扣(LeetCode)题目描述给你一个整数数组 nums ,判断是否存在三元组 [nums[i],nums[j],nums[k]] 满足 i!=j、i!=k 且 j!=k ,同时还满足 nums[i]+nums[j]+nums[k]==0 。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复......
  • LeetCode16:最接近的三数之和
    原题地址:.-力扣(LeetCode)题目描述给你一个长度为 n 的整数数组 nums 和一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例1:输入:nums=[-1,2,1,-4],target=1输出:2......
  • 文本列的性能优化?深入Oracle全文索引
    一.什么是全文索引?全文索引通过分析和处理文本,将文档中的单词分解为词条(tokens),然后存储词条与其所在文档的映射关系。这使得数据库可以快速定位包含特定关键字的记录,而不必对所有文本逐字匹配。二.实验CREATETABLEtest(TEST_IDNUMBER(6),TEST_NAMEVARCHAR2......
  • c# 值类型
    目录1、c#类型2、值类型2.1结构体2.2枚举1、c#类型类型(Type)又叫数据类型(DataType)。Adatatypeisahomogeneouscollectionofvalues,effectivelyprensented,equippedwithasetofoperationswhichmanipulatethesevalues.数据类型是由相同类型的值......
  • facebook账号类型有哪些?
    Facebook的主要账号类型在Facebook上,用户可以基于不同的目的和需求创建不同类型的账号,主要包括以下几类:1. 个人账号这是最常见的Facebook账号类型,每个用户都可以创建一个个人账号,分享生活动态、与朋友互动、发布照片和视频。个人账号用于日常社交,并且可以加入群组、参加活......
  • Android实现ListView嵌套Checkbox真正的多选、全选、反选 (附完整源码)
    Android实现ListView嵌套Checkbox真正的多选、全选、反选1.创建项目2.添加布局文件3.创建数据模型4.创建自定义Adapter5.实现MainActivity6.运行项目在Android中实现一个包含复选框的ListView,并支持多选、全选和反选的功能,可以按照以下步骤进行。我们将......
  • ScheduledThreadPoolExecutor的介绍与使用
    ScheduledThreadPoolExecutor是Java中的一个类,它继承自ThreadPoolExecutor,并实现了ScheduledExecutorService接口。这个类主要用于在给定的延迟之后或周期性地执行任务,是处理定时任务的一个强大工具。一、主要特点线程池大小固定:ScheduledThreadPoolExecutor的线程池大小......
  • CSCI235 – Database Systems
    CSCI235 – Database Systems2024 S4Implementation Task 2Dueon 7 November 2024ScopeTheImplementationofTask2 is relatedtothecontents oftopic on Indexing.This Implementation is due byThursday, 7 November 2024, 9:00 pm Singa......
  • 阿里云轻量应用服务器和ECS云服务器有什么不同
    阿里云轻量应用服务器和ECS云服务器,两者均是阿里云提供的服务器服务,它们的主要差别可以从以下几个方面进行概述:1、定位与使用场景;2、价格;3、性能与资源;4、操作和管理。轻量应用服务器的主要定位是为了满足中小型企业或个人开发者的需求,简化了服务器购买和管理的流程。1、定位......