原文:https://www.cnblogs.com/Quinnz/p/12292598.html
下面在控制台應用里展示一個簡單的例子來實現發送文本消息。
本文目錄:
創建控制台應用
使用命令行工具創建
$ 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();
}