下面在控制台应用里展示一个简单的例子来实现发送文本消息。

本文目录:

创建控制台应用

使用命令行工具创建

$ dotnet new console --name WeixinWorkDemo

dotnet 是程序的名字

new 是一个子程序的名字

console 是要使用的项目模板的名字

--name WeixinWorkDemo 指定要创建的项目的名字是 WeixinWorkDemo

添加SDK引用

命令行方式

进入项目目录
$ cd WeixinWorkDemo

添加包引用

$ dotnet add package Senparc.Weixin.Work

这个命令的执行效果可以在 WeixinWorkDemo.csproj 文件中看到

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup> <ItemGroup>
<PackageReference Include="Senparc.Weixin.Work" Version="3.7.104.2" />
</ItemGroup> </Project>

配置和使用SDK

添加appsettings.json文件

appsettings.json 文件一般用作 .NET Core 项目的项目配置文件,在 ASP.NET Core 项目中通常可以看到。

文件内容如下,其中需要替换你自己的信息进去。

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"SenparcSetting": {
"IsDebug": true,
"DefaultCacheNamespace": "DefaultCache"
},
"SenparcWeixinSetting": {
"IsDebug": true,
"WeixinCorpId": "替换为你的企业微信企业ID",
"WeixinCorpAgentId": "替换为你的企业微信应用ID",
"WeixinCorpSecret": "替换为你的企业微信应用的Secret"
}
}

声明编译时复制配置文件

然后修改 WeixinWorkDemo.csproj,声明把 appsettings.json 拷贝到编译输出目录,不然运行时会找不到 appsettings.json 文件。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup> <ItemGroup>
<PackageReference Include="Senparc.Weixin.Work" Version="3.7.104.2" />
</ItemGroup> <ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

使用SDK发送文本消息

static void Main(string[] args)
{
//创建配置构建对象,并添加配置来源
var configBuilder = new ConfigurationBuilder();
configBuilder.AddJsonFile("appsettings.json", false, false);
Console.WriteLine("完成 appsettings.json 添加"); //构建配置
var config = configBuilder.Build();
Console.WriteLine("完成 ConfigurationBuilder 初始化"); //绑定配置数据到对象,然后可以通过对象来使用
var senparcSetting = new SenparcSetting();
var senparcWeixinSetting = new SenparcWeixinSetting();
config.GetSection("SenparcSetting").Bind(senparcSetting);
config.GetSection("SenparcWeixinSetting").Bind(senparcWeixinSetting);
Console.WriteLine("完成配置对象绑定"); //使用 Microsoft 内置依赖注入创建容器
var services = new ServiceCollection(); //添加 SDK 中的本地缓存服务到容器中
services.AddMemoryCache();
Console.WriteLine("完成本地缓存注册"); //添加全局基础服务到容器中
services.AddSenparcGlobalServices(config);
Console.WriteLine("完成全局基础服务注册"); //创建注册服务
IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); //开始注册微信信息
register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting)
//注册企业微信(可注册多个)
.RegisterWorkAccount(senparcWeixinSetting, "企业微信应用名"); // 注册企业微信应用信息,同时获取了 access token // 通过应用信息获取 access token 标识
var appKey = AccessTokenContainer.BuildingKey(senparcWeixinSetting.WeixinCorpId, senparcWeixinSetting.WeixinCorpSecret);
// 通过标识获取 access token
var token = AccessTokenContainer.GetToken(appKey); // 把应用ID也加入到 appsettings.json 中,这样可以通过配置对象获取了
var appId = senparcWeixinSetting.WeixinCorpAgentId; // 使用 SDK 的消息 API 发送文本信息
MassApi.SendText(token, appId, "Hello World!", "替换为你要发送的人员账号"); Console.WriteLine("点击任意按键结束...");
Console.ReadKey();
}

参考

【原创】在 .NET Core 3.1 中使用 Senparc.Weixin.Work 企业微信 SDK —— 发送文本消息的更多相关文章

  1. 【原创】在 ASP.NET Core 3.1 中使用 Senparc.Weixin.Work 企业微信 SDK —— 发送文本消息

    下面在 Web 空应用里展示一个简单的例子来实现发送文本消息. 本文目录: 创建 Web 空应用 命令行方式创建 添加SDK引用 命令行方式 进入项目目录 添加包引用 配置和使用SDK 添加appse ...

  2. .Net Core 企业微信更新模版卡片消息

    1.搭建回调服务器 可参考:https://www.cnblogs.com/zspwf/p/16381643.html进行搭建 2.编写代码 2.1接口定义 应用可以发送模板卡片消息,发送之后可再通过 ...

  3. .NET Core 企业微信回调配置

    1.配置API接收 2.下载加密解密库 地址:https://developer.work.weixin.qq.com/devtool/introduce?id=36388,也可以复制下面的代码 2. ...

  4. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  5. [转]【译】.NET Core 3.0 中的新变化

    .NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...

  6. ASP.NET Core HTTP 管道中的那些事儿

    前言 马上2016年就要过去了,时间可是真快啊. 上次写完 Identity 系列之后,反响还不错,所以本来打算写一个 ASP.NET Core 中间件系列的,但是中间遇到了很多事情.首先是 NPOI ...

  7. 在.NET Core控制台程序中使用依赖注入

    之前都是在ASP.NET Core中使用依赖注入(Dependency Injection),昨天遇到一个场景需要在.NET Core控制台程序中使用依赖注入,由于对.NET Core中的依赖注入机制 ...

  8. ASP.NET Core 1.0 中的依赖项管理

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  9. 在ASP.NET Core 1.0中如何发送邮件

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:目前.NET Core 1.0中并没有提供SMTP相关的类库,那么要如何从ASP.NE ...

随机推荐

  1. vue iView table中render渲染

    <template> <div class="srm-page"> <el-form ref="form" :model=&quo ...

  2. selenium自动化测试入门 定位frame和iframe中的元素对象

    < frame> <iframe> 标签,浏览器会在标签中打开一个特定的页面窗口(框架),它在本窗口中嵌套进入一个网页,当用selenium定位页面元素的时候会遇到定位不到fr ...

  3. [技术翻译]使用Nuxt生成静态网站

    本周再来翻译一些技术文章,本次预计翻译三篇文章如下: 04.[译]使用Nuxt生成静态网站(Generate Static Websites with Nuxt) 05.[译]Web网页内容是如何影响 ...

  4. Win10该文件没有与之关联的应用来执行该操作...请在"默认应用设置"页面中创建关联

    问题发现:一直使用的一款软件--火柴,这两天忽然发现通过ctrl + 回车快捷键无法进入到文件所在的目录中(之前几天印象中还可以使用该功能).后来测试又发现无法打开网易云音乐中下载的音乐而进入到该音乐 ...

  5. Docker系列-第五篇Docker容器数据卷

    1.是什么 在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作 . 容器中的管理数据主要有两种方式 : 数据卷 ( Data V ...

  6. Numpy常用方法及应用总汇

    目录 Numpy 1.基本操作 1.1数组转换 1.2数组生成 1.3文件读取 1.4查看操作 2.数据类型 2.1指定数据类型: 2.2查看数据类型 2.3数据类型转换 3.数组运算 3.1数组间运 ...

  7. echarts设置柱状图颜色渐变及柱状图粗细大小

    series: [ { name: '值', type: 'bar', stack: '总量', //设置柱状图大小 barWidth : 20, //设置柱状图渐变颜色 itemStyle: { n ...

  8. 原生js里的offset、client、scroll三大家族

    offset家族 自己的,用于获取元素自身尺寸 offsetWidth 和 offsetHeight 获取元素自身的宽度和高度,包括内容+边框+内边距 offsetLeft 和 offsetTop 距 ...

  9. 从头学pytorch(十八):GoogLeNet

    GoogLeNet GoogLeNet和vgg分别是2014的ImageNet挑战赛的冠亚军.GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多 ...

  10. Scala与Mongodb实践3-----运算环境的搭建

    目的:使的在IDEA中编辑代码,令代码实现mongodb运算,且转换较为便捷 由实验2可知,运算环境的搭建亦需要对数据进行存储和计算,故需要实现类型转换,所以在实验2的基础上搭建环境. 由菜鸟教程可得 ...