zoukankan      html  css  js  c++  java
  • C# 企业微信API开发(获取Token,给用户发送消息)

            #region 获取Token
            /// <summary>
            /// 获取Token
            /// </summary>
            public string GetAccessToken()
            {
                string requestUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxxxxxxx&corpsecret=xxxxxxxxxxxxxxxxxxxxxxxx";
                WebResponse result = null;
                WebRequest req = WebRequest.Create(requestUrl);
                result = req.GetResponse();
                Stream s = result.GetResponseStream();
                XmlDictionaryReader xmlReader = JsonReaderWriterFactory.CreateJsonReader(s, XmlDictionaryReaderQuotas.Max);
                xmlReader.Read();
                string xml = xmlReader.ReadOuterXml();
                s.Close();
                s.Dispose();
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);
                XmlElement rootElement = doc.DocumentElement;
                string access_token = rootElement.SelectSingleNode("access_token").InnerText.Trim();
                return access_token;
            }
            #endregion

    以上代码需要引用如下dll文件

    #region 给用户发送消息
            public void SendMessage( string userid,string strtext) 
            {
                string retString = string.Empty;
                string url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}";//string url = GetUrlString;
                url = string.Format(url, GetAccessToken());
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/json";
                //序列化为字符串,可以使用自己项目中封装的json方法
                string strContent = "{"touser" : "" + userid + "","msgtype" : "text","agentid" : 应用程序ID,"text" : {"content" : "" + strtext + ""},"safe":0}";
                using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
                {
                    dataStream.Write(strContent);
                    dataStream.Close();
                }
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string encoding = response.ContentEncoding;
                if (encoding == null || encoding.Length < 1)
                {
                    encoding = "UTF-8"; //默认编码  
                }
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
                retString = reader.ReadToEnd();
            
            }
            #endregion

    其中多个用户ID以‘|’隔开 例如  “LEIGANG|XIAOHONG|ZAHNGWU”

  • 相关阅读:
    【计算机图形学】变换 (Transform)
    [图像处理]基于 PyTorch 的高斯核卷积
    [PyTorch] torch.squeee 和 torch.unsqueeze()
    【图像分析】边缘检测中的图像梯度以及各种梯度算子的介绍
    你买的课程看了吗?
    为什么用抓包工具看HTTPS包是明文的
    定制化Fiddler
    软件测试常见网络相关面试题
    单线程和多线程执行对比—Python多线程编程
    多线程实践—Python多线程编程
  • 原文地址:https://www.cnblogs.com/xiong950413/p/13816202.html
Copyright © 2011-2022 走看看