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”