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

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10