【原創】在 .NET Core 3.1 中使用 Senparc.Weixin.Work 企業微信 SDK —— 發送文本消息

下面在控制檯應用裏展現一個簡單的例子來實現發送文本消息。html

本文目錄:
git

建立控制檯應用

使用命令行工具建立github

$ dotnet new console --name WeixinWorkDemo

dotnet 是程序的名字
new 是一個子程序的名字
console 是要使用的項目模板的名字
--name WeixinWorkDemo 指定要建立的項目的名字是 WeixinWorkDemojson

添加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 項目中一般能夠看到。微信

文件內容以下,其中須要替換你本身的信息進去。app

{
    "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();
}

參考

相關文章
相關標籤/搜索