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

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

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

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

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

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

c28d3ad0013968eaf08695c06d31a342.png

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

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

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 judge

19

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.

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

整个过程代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 public static string Chat(string s)

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 = 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 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

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

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

9cf5e1eb02e5463f43f662f7f55ea9db.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信聊天机器人可以为用户提供快速简便的交互体验,而自己编写机器人源码则可以为开发者提供更高度的定制化能力。目前市面上已有一些比较成熟的bot微信聊天机器人源码开发者可以在这些基础上进行二次开发和定制化。 一个较为完整的bot微信聊天机器人源码应该包括以下几个部分:自然语言处理(NLP)引擎、接口调用模块、规则引擎、后台管理界面和数据库。 其中,自然语言处理引擎是该机器人的核心组成部分,可以将用户输入的信息进行分析、识别、分类等工作。接口调用模块则是连接机器人和微信公众平台的桥梁,它可以对接微信平台提供的接口,接受用户输入和回应。 规则引擎是机器人的灵魂,通过对机器人的业务规则进行编写和实现,保障机器人在具体的业务场景中能够正常、高效地工作。后台管理界面则是为机器人管理者提供的一种管理方式,他们可以通过这个界面对机器人的管理和运行状态进行实时监控和调整。最后,数据库则是存储机器人相关数据的存储介质,它可以支持机器人对历史数据进行分析和挖掘,为机器人未来的可发展性提供支持。 总体而言,bot微信聊天机器人源码在不断地完善和更新,为了能够尽快推出高效性能的机器人,开发者需要加强对自然语言处理、大数据分析等技术的运用和研究,以期取得更好的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值