【原创】在 .NET Core 3.1 中使用 Senparc.Weixin.Work 企业微信 SDK —— 发送文本消息
下面在控制台应用里展示一个简单的例子来实现发送文本消息。
本文目录:
创建控制台应用
使用命令行工具创建
$ 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 —— 发送文本消息的更多相关文章
- 【原创】在 ASP.NET Core 3.1 中使用 Senparc.Weixin.Work 企业微信 SDK —— 发送文本消息
下面在 Web 空应用里展示一个简单的例子来实现发送文本消息. 本文目录: 创建 Web 空应用 命令行方式创建 添加SDK引用 命令行方式 进入项目目录 添加包引用 配置和使用SDK 添加appse ...
- .Net Core 企业微信更新模版卡片消息
1.搭建回调服务器 可参考:https://www.cnblogs.com/zspwf/p/16381643.html进行搭建 2.编写代码 2.1接口定义 应用可以发送模板卡片消息,发送之后可再通过 ...
- .NET Core 企业微信回调配置
1.配置API接收 2.下载加密解密库 地址:https://developer.work.weixin.qq.com/devtool/introduce?id=36388,也可以复制下面的代码 2. ...
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
- [转]【译】.NET Core 3.0 中的新变化
.NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...
- ASP.NET Core HTTP 管道中的那些事儿
前言 马上2016年就要过去了,时间可是真快啊. 上次写完 Identity 系列之后,反响还不错,所以本来打算写一个 ASP.NET Core 中间件系列的,但是中间遇到了很多事情.首先是 NPOI ...
- 在.NET Core控制台程序中使用依赖注入
之前都是在ASP.NET Core中使用依赖注入(Dependency Injection),昨天遇到一个场景需要在.NET Core控制台程序中使用依赖注入,由于对.NET Core中的依赖注入机制 ...
- ASP.NET Core 1.0 中的依赖项管理
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- 在ASP.NET Core 1.0中如何发送邮件
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:目前.NET Core 1.0中并没有提供SMTP相关的类库,那么要如何从ASP.NE ...
随机推荐
- ES6学习之二
本文的学习来自技术胖大神的教程:https://jspang.com/ 1扩展运算符和rest运算符 扩展运算符和rest运算符,它们都是…(三个点). 它们有很多相似之处,甚至很多时候不用特意去区分 ...
- 【生活】记第一次参加CCF CSP认证
2018年03月18日 CCF CSP认证 三月份的这次csp认证,我之前是没报名的,一来自己还没什么准备,二来去年的那次认证我也没参加,开考前的一个礼拜,从朋友那得知,这次学校团体报名的名额还没报满 ...
- 「BZOJ4510」「Usaco2016 Jan」Radio Contact 解题报告
无线电联系 Radio Contact 题目描述 Farmer John has lost his favorite cow bell, and Bessie the cow has agreed t ...
- Django ORM调优实践
一.分析请求慢响应的主要原因 将请求执行的任务按功能分为几块,用time.time()打印每个模块的执行时间,大部分情况下性能会主要消耗在某一个模块上,即80%的性能问题是出在20%的代码上 找到主要 ...
- 基于GMC/umat的复合材料宏细观渐近损伤分析(一)
近期在开展基于GMC/umat的复合材料宏细观渐近损伤分析,一些技术细节分享如下: 1.理论基础 针对连续纤维增强复合材料,可以通过离散化获得如下的模型: (a)(b)(c) 图1 连续纤维增强复合材 ...
- ThreadLocal解析:父线程的本地变量不能传递到子线程详解
众所周知,ThreadLocal类是java提供线程本地变量的工具类.但父线程的本地变量却不能被子线程使用,代码如下: public static void main(String[] args) { ...
- Persistence.beans
SF_USERS user = new SF_USERS(); user.setCTIME("20170103"); String ids = "fish,water&q ...
- Codeforces Round #609 (Div. 2)前五题题解
Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...
- python 多进程处理图像,充分利用CPU
默认情况下,Python程序使用一个CPU以单个进程运行.不过如果你是在最近几年配置的电脑,通常都是四核处理器,也就是有8个CPU.这就意味着在你苦苦等待Python脚本完成数据处理工作时,你的电脑其 ...
- TensorFlow——Graph的基本操作
1.创建图 在tensorflow中,一个程序默认是建立一个图的,除了系统自动建立图以外,我们还可以手动建立图,并做一些其他的操作. 下面我们使用tf.Graph函数建立图,使用tf.get_defa ...