New file |
| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using Talk.Extensions; |
| | | |
| | | namespace Utility.Tools |
| | | { |
| | | /// <summary> |
| | | /// 企业微信 |
| | | /// </summary> |
| | | public class WeComTools |
| | | { |
| | | private static string access_token = ""; |
| | | public WeComTools() |
| | | { |
| | | access_token = GetToken(); |
| | | } |
| | | |
| | | public string GetToken() |
| | | { |
| | | Dictionary<string, string> dic = new Dictionary<string, string>(); |
| | | dic.Add("corpid", WeComConfig.corpid); |
| | | dic.Add("corpsecret", WeComConfig.corpsecret); |
| | | var response = HttpHelper.DoGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken", dic); |
| | | var modResponse = JsonConvert.DeserializeObject<TokenResponse>(response); |
| | | if (modResponse.errcode == 0) |
| | | { |
| | | return modResponse.access_token; |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah(modResponse.errmsg); |
| | | } |
| | | } |
| | | public bool SendNewsMessage(string title, string content, string touser = "@all") |
| | | { |
| | | MessageRequest request = new MessageRequest() |
| | | { |
| | | touser = touser, |
| | | agentid = WeComConfig.agentid, |
| | | msgtype = "mpnews", |
| | | mpnews = new Mpnews() |
| | | { |
| | | articles = new List<ArticlesItem>() |
| | | { |
| | | new ArticlesItem() |
| | | { |
| | | title = title, |
| | | thumb_media_id = WeComConfig.thumb_media_id, |
| | | content = content |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | var response = HttpHelper.DoPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+ access_token, JsonConvert.SerializeObject(request), "WeCom", "WMS"); |
| | | var modResponse = JsonConvert.DeserializeObject<TokenResponse>(response); |
| | | if (modResponse.errcode == 0) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | public bool SendTextMessage(string content, string touser = "@all") |
| | | { |
| | | MessageRequest request = new MessageRequest() |
| | | { |
| | | touser = touser, |
| | | agentid = WeComConfig.agentid, |
| | | msgtype = "text", |
| | | text = new Text() { content = content } |
| | | }; |
| | | var response = HttpHelper.DoPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+ access_token, JsonConvert.SerializeObject(request), "WeCom", "WMS"); |
| | | var modResponse = JsonConvert.DeserializeObject<TokenResponse>(response); |
| | | if (modResponse.errcode == 0) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public class WeComConfig |
| | | { |
| | | public static string corpid { get; set; } |
| | | public static int agentid { get; set; } |
| | | public static string corpsecret { get; set; } |
| | | public static string thumb_media_id { get; set; } |
| | | } |
| | | public class TokenResponse |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int errcode { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string errmsg { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string access_token { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int expires_in { get; set; } |
| | | } |
| | | |
| | | public class ArticlesItem |
| | | { |
| | | /// <summary> |
| | | /// 标题 |
| | | /// </summary> |
| | | public string title { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string thumb_media_id { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string content { get; set; } |
| | | } |
| | | |
| | | public class Mpnews |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public List<ArticlesItem> articles { get; set; } |
| | | } |
| | | public class Text |
| | | { |
| | | public string content { get; set; } |
| | | } |
| | | public class MessageRequest |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string touser { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string msgtype { get; set; } = "mpnews"; |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int agentid { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public Mpnews mpnews { get; set; } |
| | | public Text text { get; set; } |
| | | } |
| | | |
| | | } |