三步轻松打造微信聊天机器人(附源码)

article/2025/9/24 22:48:53

 最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号。

      其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?)。但尽管是跟风,也要体现一些不同。别人做的都是中文陪聊,咱就来做个英语陪聊。

      不管是中文还是英文,做起来都一样,都是利用网络上的接口。或者你也可以试着自己开发一个陪聊程序。

      随便在网上搜了一个英语聊天机器人的网址:http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1   咱们就利用这个网址来做微信公众平台。只需简单三步便轻松搞定。不过在此之前你最好先了解一点微信消息的通信过程。

第一步:处理用户发来的消息

 

      如图,微信服务器将用户发来的消息以这种形式发给你的服务器,首先你要对这段xml进行处理,提取出用户发送的消息,也就是<Content></Content>中的内容,很简单,用到的是System.Xml类。

第二步:将消息POST到上述网址,获取返回的消息

     得到用户发来的消息之后,将它POST到上述网址之后,得到的是网站返回的html代码,如下图:

复制代码
复制代码
复制代码
 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">2 <HTML><HEAD>3 <style type="text/css">4 @import "http://alicebot.org/all.css"; 5 <!-- liberally borrowed style from http://glish.com/css/7.asp -->6 </style>7 <SCRIPT>8 <!--9 function sf(){document.f.input.focus();}
10 // -->
11 </SCRIPT>
12 </HEAD>
13 <BODY lang="en-US" bgColor="#AAAAAA" οnlοad="sf()">
14 
15 
16 <b>
17 
18 A.L.I.C.E. and  judge
19 </b>
20 <br/><br/>
21 
22 <b>You said:</b> What's the weather today<br/>
23 <b>A.L.I.C.E.:</b> Cloudy.<br/>
24 
25 <br/>
26 <form name="f" action="" method="post">
27 <input type="hidden" name="botcust2" value="9b25a3b2de04bab2"> 
28 <P><font face="arial"><b>You say:</b></font> 
29 <!--
30 <input type="text" size="60" name="input" x-webkit-speech />
31 -->
32 <input type="text" size="60" name="input"/> 
33 <input type="submit" value="Say"/>
34 </P>
35 </form>
36  
37 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
38 <em>
39 <a href="http://alicebot.org/join.html" target="_new">
40 Listen to two bots talking to each other!
41 </a>
42 </em>
43 
44 <HR/>
45 <b>Conversation Log:</b>
46 <br/> 
47              <br>  judge:  What's the weather today <br>  ALICE:  Cloudy.
复制代码
复制代码
复制代码

     你需要处理这段html,从中找出要回给用户的内容。对于这段html代码来说很简单,最后一行就是对话内容,将它提取出来即可。

整个过程代码如下:

复制代码
复制代码
复制代码
 1         public static string Chat(string s)2         {3             string result = string.Empty;4             try5             {6               string padata = "botcust2=8eb5abf08e04e9fc&input=" + s;7               string url = "http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custom_input";//请求登录的URL8               byte[] byteArray = Encoding.UTF8.GetBytes(padata); // 转化9               HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(url);  //新建一个WebRequest对象用来请求或者响应url
10               webRequest2.Referer = "http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custom_input";
11               webRequest2.Method = "POST";                                          //请求方式是POST
12               webRequest2.ContentType = "application/x-www-form-urlencoded";       //请求的内容格式为application/x-www-form-urlencoded
13               webRequest2.ContentLength = byteArray.Length;
14 
15               Stream newStream = webRequest2.GetRequestStream();           //返回用于将数据写入 Internet 资源的 Stream。
16             
17 newStream.Write(byteArray, 0, byteArray.Length); //写入参数 18 newStream.Close(); 19 HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse(); 20 StreamReader sr = new StreamReader(response2.GetResponseStream(), Encoding.Default); 21 string text = sr.ReadToEnd(); 22 result = text.Substring(text.LastIndexOf(':') + 3); 23 } 24 catch(Exception ex) 25 { 26 WriteLog(ex.Message); 27 } 28 return result; 29 }
复制代码
复制代码
复制代码

第三步:将消息包装后发送

      与接收到的消息类似,你需要将消息包装成上图的xml格式发回给微信服务器,用户便能够收到。

     到这里,聊天机器人就做好了。咱们来看看效果:

本文转自博客园知识天地的博客,原文链接:三步轻松打造微信聊天机器人(附源码),如需转载请自行联系原博主。


http://chatgpt.dhexx.cn/article/bZ8UFb3Q.shtml

相关文章

实现微信聊天机器人-中级篇

一、ChatterBot工作原理 Chatbot Engine的技术框架采用了开源项目ChatterBot (https://github.com/gunthercox/ChatterBot)。 ChatterBot是一个python库,利用它可以轻松的创建对话软件。 一个未经训练的ChatterBot实例开始不知道如何沟通,每次用户输入一个语句,ChatterBo…

微信聊天机器人,不使用iChat,可以群聊

目录 1. 微信聊天界面截图 2. 图片文字识别 3. 获取最新消息 3.1 独聊 3.2 群聊 4. 机器人聊天系统 5. 成果展示 6. 全部代码 本文参考大神【喵王叭】的文章&#xff1a;python实现微信、QQ聊天自动回复【纯物理】_喵王叭的博客-CSDN博客_python自动回复纯物理方式实现微…

tomcat的开发模式和生产模式

tomcat这两种模式对大家的影响主要是在jsp的开发当中。大家都知道jsp需要先编译成servlet源文件并编译为字节码&#xff0c;即生成.class文件才可以执行&#xff0c;所以在jsp文件首次运行时先要进行编译导致运行较慢&#xff0c;之后的访问都会直接进入执行阶段。 在开发模式下…

chrome开发模式下清除缓存问题

介绍&#xff1a; 在开发的时候经常会遇到这样的问题&#xff0c;后台js修改&#xff0c;前台怎么也清除不了缓存的问题&#xff0c;包括使用ctrlf5都没有办法处理,今天教大家一种方式&#xff0c;在chrome中采用开发模式下彻底清除缓存问题 一、打开chrome&#xff0c;随便访…

微信小程序-云开发模式pk传统开发模式【详细】

👨‍🎓作者:bug菌 ✏️博客:CSDN、掘金等 💌公众号:猿圈奇妙屋 🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。 🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。 小伙伴们,说起开发微…

软件开发模式之敏捷开发(scrum)

简介 这几年关于敏捷开发在互联网企业中越来越广泛被使用到&#xff0c;运用的比较多的当属scrum敏捷开发和xp敏捷开发&#xff0c;人人都在谈论敏捷开发。那什么才是敏捷开发呢&#xff1f; 目录 什么是敏捷开发&#xff1f;传统的开发模式和敏捷开发模式的对比&#xff1f…

特性分支开发模式 or 主干开发模式,团队该如何选择?

对于一个具有一定规模的开发团队而言&#xff0c;团队 Devops 的建设都是迈向高效开发的必经之路&#xff0c;即便没有达到 Devops 建设的程度&#xff0c;为了团队中开发之间的高效协作&#xff0c;基于版本管理工具来选择团队合理的代码分支开发模式都是非常重要的一环。对于…

vue项目的三种开发模式

vue项目的三种开发方式 文章目录 vue项目的三种开发方式1.原始无合作开发2.手动模块化开发3.自动模块化开发1、开发流程2、配置webpack-dev-server1.下载安装包2.配置package.json3、配置webpack.config.js4、执行程序5、调试程序 1.原始无合作开发 包含两个文件&#xff1a;v…

介绍两种常见软件开发模式:“敏捷”和“瀑布”

在软件开发时&#xff0c;经常面对的第一个项目实现决策是“我们应该使用哪种开发方法?”这是一个引起很多讨论(和激烈辩论)的话题。如果您以前没有使用过这种方法&#xff0c;那么适当了解开发方法和理论是必要的;简单地说&#xff0c;这是一种组织软件开发工作的方法。这与项…

常用的4种开发模式

常用的4种开发模式 1. 瀑布式开发 瀑布式开发是由W.W.Royce在1970年提出的软件开发模型,是一种比较老的计算机软件开发模式,也是典型的预见性的开发模式。在瀑布式开发模式中,开发严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤进行,步骤的成果作为衡量进…

小程序:游客模式--开发模式

一、简介 1.1、普通的开发可以正常进行 1.2、小程序开发工具不能预览&#xff0c;不能真机调试&#xff0c;调用微信扫码不能走成功的回调 等等 1.3、仔细观察开发者工具提示当前为“游客模式”&#xff0c;作为开发者需要切换到可以正常开发的“开发模式” 二、解决 2.1、开…

web开发模式+身份认证

一、web开发模式 目前主流的 Web 开发模式有两种&#xff0c;分别是&#xff1a; 1.基于服务端渲染的传统 Web 开发模式&#xff1a;  概念&#xff1a;服务器发送给客户端的 HTML 页面&#xff0c;是在服务器通过字符串的拼接&#xff0c;动态生成的。因此&#xff0c;客户端…

微信小程序——传统开发模式与云开发模式对比

目 录 1、传统开发模式与云开发模式的对比图 2、云开发技术能力说明 3、云开发技术特点 1、传统开发模式与云开发模式的对比图 通过传统开发模式与云开发模式的对比图可以看出传统开发模式需要开发者关注后端服务器&#xff0c;比如数据库、文件存储、负载均衡、异地容灾、…

前后端分离开发模式介绍

1.1 什么是前后端分离 前后端分离是目前一种非常流行的开发模式&#xff0c;它使项目的分工更加明确&#xff1a; 后端&#xff1a;负责处理、存储数据前端&#xff1a;负责显示数据 前端和后端开发人员通过 接口 进行数据的交换。 1.2 为什么要进行前后端分离 前后端可以…

敏捷开发模式

1、敏捷开发的概念 从1990年代开始逐渐引起广泛关注&#xff0c;是一种以人为核心、迭代、循序渐进的开发方法。强调以人为本&#xff0c;专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。 2、敏捷开发的流程 (图为禅道敏捷开发流程管理) 2.1 产品负责人将…

Django开发模式与流程

Python的WEB框架有Django、Tornado、Flask 等多种&#xff0c;Django相较与其他WEB框架其优势为&#xff1a;大而全&#xff0c;框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。 一.Django的MTV开发模式与一般的MVC开发模式区别 1.MVC模式 在MVC模式中&am…

【面向对象】DDD(一):传统开发模式 VS DDD 开发模式

我们都知道&#xff0c;很多业务系统都是基于 MVC 三层架构来开发的。实际上&#xff0c;更确切点讲&#xff0c;这是一种基于贫血模型的 MVC 三层架构开发模式。虽然这种开发模式已经成为标准的 Web 项目的开发模式&#xff0c;但它却违反了面向对象编程风格&#xff0c;是一种…

MVC开发模式

一.MVC设计模式 1.MVC模式&#xff08;Model-View-Controller&#xff09;是软件工程中的一种软件架构模式&#xff0c;把软件系统分为三个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff0…

项目的开发模式

开发模式大概可以分为两种&#xff1a; 1、大公司的开发模式&#xff1b; 2、外包的开发模式&#xff1b; 一、大公司的开发模式&#xff1b; 1. 市场调研 2. 项目需求会&#xff08;人员&#xff09; 产品市场运营UI开发后端前端项目经理测试–>web/ios/安卓安全 3. …

什么是DDD开发模式

DDD尝试解决业务系统(逻辑CRUD)开发的复杂性问题&#xff0c;这种复杂性是由于复杂的业务规则&#xff0c;业务逻辑变化。 一般系统的业务逻辑、复杂性在于&#xff1a;流转判断多&#xff0c;专业规则多&#xff0c;计算量大。而DDD模式的解决的方式是通过分层&#xff0c;即业…