微信公眾號開發:5、企業微信 SDK —— 發送文本消息


原文: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();
}

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM