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

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

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

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

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

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

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

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

1

2

3

4 @import "http://alicebot.org/all.css";5 6

7

8

11

12

13

14

15

16

17

18 A.L.I.C.E. and judge19

20

21

22 You said: What's the weather today

23 A.L.I.C.E.: Cloudy.

24

25

26

27

28

You say:

29

32

33

34

35

36

37

38

39

40 Listen to two bots talking to each other!41

42

43

44


45 Conversation Log:

46

47
judge: What's the weather today
ALICE: Cloudy.

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

整个过程代码如下:

1 public static string Chat(strings)2 {3 string result = string.Empty;4 try

5 {6 string padata = "botcust2=8eb5abf08e04e9fc&input=" +s;7   string url = "http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custom_input";//请求登录的URL

8   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 = newStreamReader(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 returnresult;29 }

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

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

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

才疏学浅,不足之处请大家多多指正。我的第一篇博客,希望大家多多支持。

这个是公众号,有兴趣的朋友可以去聊几句哦。

微信机器人 java 源码_三步轻松打造微信聊天机器人(附源码)相关推荐

  1. 在线报名竞赛网站java源码_我用Java写出了一个QQ!可在线聊天(附源码)~

    来源:blog.csdn.net/weixin_44048140 正文如下: 一. 功能实现 1.修改功能(密码.昵称.个性签名) 2.添加好友.删除好友 3.单聊功能 4.判断好友是否在线 二. 模 ...

  2. 安卓4.4.4安装哪个微信版本_微信自动更新在哪里 简单几步轻松关闭微信自动更新方法...

    1月1日,微信自动更新上热搜了,原因是很多安卓手机用户的微信版本自动更新到了最新的7.0.0正式版,由于在没有获得用户确认的情况下,自动更新升级,也引发了不少用户的不满和吐槽.那么,微信自动更新怎么关 ...

  3. python量化选股策略 源码_常见的十大量化投资策略(附源码)

    量化投资策略是利用量化的方法,进行金融市场的分析.判断和交易的策略.算法的总称.著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01.海龟交易策略 海龟交易策略是 ...

  4. 三步创建免费微信砍价活动攻略,开发者福音

    为什么80%的码农都做不了架构师?>>>    三步创建免费微信砍价活动攻略,开发者福音 砍价三步走: 第一步: 登录"H5活动之家"官网 www.h5huodo ...

  5. java计算机毕业设计ssm兴发农家乐服务管理系统n159q(附源码、数据库)

    java计算机毕业设计ssm兴发农家乐服务管理系统n159q(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行 ...

  6. JAVA计算机毕业设计腾讯网游辅助小助手(附源码、数据库)

    JAVA计算机毕业设计腾讯网游辅助小助手(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe ...

  7. java计算机毕业设计vue开发一个简单音乐播放器(附源码、数据库)

    java计算机毕业设计vue开发一个简单音乐播放器(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ec ...

  8. java计算机毕业设计ssm基于SSM学生信息管理系统37myx(附源码、数据库)

    java计算机毕业设计ssm基于SSM学生信息管理系统37myx(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm ...

  9. JAVA计算机毕业设计林家餐厅自助点餐管理系统(附源码、数据库)

    JAVA计算机毕业设计林家餐厅自助点餐管理系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecli ...

最新文章

  1. 2022-2028年中国激光全息膜行业市场现状调研及市场需求潜力报告
  2. html:漂亮的原生表格_HTML表格:关于它们的所有知识
  3. 法律应是站在加密和隐私这面的……
  4. 被3整除的子序列(线性dp)
  5. fsync与fflush的关系和区别
  6. LeetCode —— 532. 数组中的K-diff数对(Python)
  7. 用python统计图片中的点_用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)...
  8. linux 软件包 rpm命令之安装、更新、卸载、依赖
  9. idea java sdk找不到指定文件路径_java-IntelliJ找不到任何声明
  10. MPLS ××× 基本实验测试
  11. 用python画圣诞树-python圣诞树
  12. 字节流和字符流的读写
  13. android模拟gps定位软件,gps定位模拟器下载最新版
  14. 【MySQL】关系型数据库基本知识点
  15. python实现单纯形法(大M法)
  16. IntelliJ IDEA配置WEB浏览器
  17. 直接管理和维护计算机系统的程序称为,全国2008年4月自考计算机原理试题
  18. git将master分支develop的操作
  19. 天天自习软件测试计划
  20. FileNotFoundException open failed: XXXXXXX EPERM (Operation not permitted)的坑

热门文章

  1. 3.12 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  2. Android Studio错误代码汇总
  3. [python] shell模式下面写for循环
  4. 猜想串scan的order
  5. FPGA实现序列检测(训练testbench写法)
  6. 坚果pro2s7.0.1系统更新截图(订阅号长截图测试)PhotoScape图片编辑器应用
  7. keil 多文件组织方法
  8. 用VS 2008开发WCF(一)——最快速的WCF入门
  9. CF993E:Nikita and Order Statistics(FFT)
  10. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)