C#开发微信公众号之消息自动回复

2024-08-22 03:18

本文主要是介绍C#开发微信公众号之消息自动回复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为计算机学院的学生的学生,时刻在打计算机学院官网的主意,前段时间我的一个好基友在我面前炫耀他的能够查课表的公众号(服务模拟登录返回数据),把我眼红得,所以我暗自下决心,自己一定要弄个微信公众号来玩玩儿。经过各种网上查资料,各种走弯路,还是实现了微信公众号机器人聊天功能。虽然这个很简单,但是网上完善而又详细的资料很难找,而且官网的开发文档只针对php语言发布了Demo,开发者文档简直坑爹,不过我还是忍不住分享出来,嘿嘿,下面我就开始分享我的经验了。

1、开发准备:你需要一台服务器或者虚拟主机,一个微信号,然后到微信公众平台注册一个账号,并且申请一个订阅号。PS:订阅号可以每天群发消息,服务号一个月只能发一次。所以首选订阅号,不要问我为什么,一个字,爽。

2、当你申请公众号成功了就可以群发消息了,不过这些只能手动群发,还有就是针对用户回复的消息不能做出只能的响应,要响应的话必须手动添加关键字回复,所以这样肯定是不行的,这个时候就需要进入开发这中心进行相关的配置,如下图:
这里写图片描述
具体详情点击我

很多人会卡在服务器验证这关,因为总是显示taken验证失败,那是因为开发者服务器没有返回数据或者返回的数据微信服务器不能识别,大家仔细看红框里的:
这里写图片描述
如果你很久都没有验证成功,你可以直接返回echostr参数内容,这样达到欺骗微信服务器的效果(不建议这样做,因为没有验证taken,安全性非常低,但是作为初学者,咱先把功能实现了再说,嘿嘿)。当然我整熟了后也是验证了的。

3、当你验证服务器成功了后,就可以开始开发服务器端了。

我先来一段服务器欺骗的接口代码(我用的是.ashx一般处理文件):

<%@ WebHandler Language="C#" Class="Login" %>using System;
using System.Web;public class Login : IHttpHandler
{public void ProcessRequest(HttpContext context){context.Response.ContentType = "text/plain";string echoString = HttpContext.Current.Request.QueryString["echoStr"];context.Response.Write(echoString);}public bool IsReusable{get{return false;}}}

直接撂到服务器上运行,不过你会发现网页会报错,不过不用担心,你按照报错的来修改web.config文件,就成功了。


好了,以上就是开发准备,接下来我将开始进入开发微信公众号服务端正题。

思路:
1、首先你得有一个图灵机器人的接口,这个时候你就要到图灵机器人官网注册账号,申请账号(希望你自己申请一个接口,不要用博主的,谢谢合作)。

2、服务器端接受到微信服务器发送过来的消息后,开发者写的接口直接爬取图灵接口所返回的数据,然后解析,转化成微信服务能够识别的数据格式,最后返回给微信服务器,这样微信服务器就会自动转发给指定openId的用户。

一、weixinapi.ashx(我用的是明文模式,所以把加密的代码注释了):

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Xml;
using WeiXinApi.Util;namespace WeiXinApi
{/// <summary>/// weixinapi 的摘要说明/// </summary>public class weixinapi : IHttpHandler{string sToken = null;string sAppID = null;string sEncodingAESKey = null;public void ProcessRequest(HttpContext context){try{Stream stream = context.Request.InputStream;byte[] byteArray = new byte[stream.Length];stream.Read(byteArray, 0, (int)stream.Length);string postXmlStr = System.Text.Encoding.UTF8.GetString(byteArray);if (!string.IsNullOrEmpty(postXmlStr)){XmlDocument doc = new XmlDocument();doc.LoadXml(postXmlStr);//if (string.IsNullOrWhiteSpace(sToken))//{//    DataTable dt = ConfigDal.GetConfig(WXMsgUtil.GetFromXML(do

这篇关于C#开发微信公众号之消息自动回复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095084

相关文章

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur