java调用企业微信第三方接口 (asp调用企业微信api)

今天给大家介绍我自己在项目中使用的企业微信帮助工具,是结合企业微信官方文档写的帮助类。

第一步:引入BaoZi.Tools.QYWX

第二步:在你的项目中可以通过new QYWXApp(企业微信公司ID,自建应用的AgentId,自建应用的CorpSecret)创建一个App实例

示例代码1(根据临时登录码获取登录用户):

var app = newQYWXApp("CorpId",123,"CorpSecret") 
//根据临时登录码code获取登录用户
var userinfo = app.GetUserInfo("code");

上述代码根据企业微信中构造的登录链接获取的临时登录码code来获取当前登录的是哪个用户。其中获取的userinfo类如下:

 public class QYWXUserInfo
    {
        public string userid { get; set; }
        public string name { get; set; }
        public string mobile { get; set; }
        public string user_ticket { get; set; }
    }

示例代码2(发送消息):

void SendMessage(MessageContent messageContent)

其中 MessageContent 是一个抽象类,针对消息内容的抽象类,实现了下面几种消息类型,根据需要发送消息的类型进行调用即可

 public abstract class MessageContent
    {
        public string touser { get; set; }
        public string toparty { get; set; }
        public string totag { get; set; }
        public long agentid { get; set; }
    }

    #region 文本消息
    public class WXTextContent : MessageContent
    {
        public string msgtype = "text";
        public WXText text { get; set; }
    }

    public class WXText
    {
        public string content { get; set; }
    }
    #endregion

    #region 图片消息
    public class WXImageContent : MessageContent
    {
        public string msgtype = "image";
        public WXImage image { get; set; }
    }

    public class WXImage
    {
        public string media_id { get; set; }
    }
    #endregion
    
    #region 文件消息
    public class WXFileContent : MessageContent
    {
        public string msgtype = "file";
        public WXFile file { get; set; }
    }

    public class WXFile
    {
        public string media_id { get; set; }
    }
    #endregion

上述代码是针对自建应用的一些常用方法。

三、机器人消息发送

首先需要new 一个机器人对象

var robot = new QYWXRobot(){RobotKey="机器人的key"}

其中RobotKey如图所示,需要自己进行新建机器人方可获取。

asp调用企业微信api,asp调用微信公众号接口

这里我提供了三种消息的发送

1、机器人发送图片

public string RobotSendImage( string ImagePath)

2、机器人发送文字消息,其中的mentioned_list可以参考企业微信文档

RobotSendText(string content, string? mentioned_list = null)

3、机器人发送文件消息

string RobotSendFile(string path)

四、彩蛋,引入企业微信帮助nuget包时,会同时引入BaoZi.Tools.Http包

此工具类实现了两个扩展方法:

public static async Task<string> GetAsync(this string url)

public static async Task<string> PostAsync(this string url, HttpContent? content)

用于C#后端发送http的get、post请求

用法如下:

string url = "http://www.baidu.com";
var res = await url.GetAsync();
var res2 = await url.PostAsync(null);

如果有小伙伴不想自己的方法是异步的,可以这样调用

string url = "http://www.baidu.com";
var res =  url.GetAsync().GetAwaiter().GetResult();
var res2 =  url.PostAsync(null).GetAwaiter().GetResult();

上一期问题:如何将自己的工具类发布到nuget?

接下来给大家介绍一下如何将自己的工具类发布到nuget。

1、创建项目为类库项目

asp调用企业微信api,asp调用微信公众号接口

2、编辑好你的帮助类之后在项目文件csproj文件中编辑你的版本,作者,描述等信息。

asp调用企业微信api,asp调用微信公众号接口

3、右键项目,然后点击打包,打包成功之后,在控制台可以看到生成的nupkg文件

4、使用微软账号登录nuget,如下图,选择你生成的nupkg文件进行上传即可

asp调用企业微信api,asp调用微信公众号接口