第一次在这写博客,不妥之处还望海涵。
效果就是这样
首先我们用到的工具是VS2015,还没安装的朋友自行安装。
然后我们需要到图灵聊天机器人官网获取key。
http://www.tuling123.com/
注册成功后我们会获得一个你专属的机器,给我们提供的key让我能在代码中引用机器人的聊天内容。
有了key之后我们来测试下key能用了没
在浏览器输入
http://www.tuling123.com/openapi/api?key=yourkey7588df24e399bf06971&info=你好
看到有类似机器人回复的文字出现,就证明key 可以使用了。
好了,现在我们理一下思路:
1、输入聊天内容
2、聊天内容与图灵key链接组合
3、发送这个链接请求
4、获取返回内容
5、加工返回的内容,剔除不需要的部分,{“code”:100000,“text":"
6、将加工后的内容和输入的聊天内容显示在一个lable上,完成。
现在开始我们的步骤
新建一个vb.net 窗口应用程序
拖入控件
控件 的属性默认就好
双击窗口空白处进入代码编写
在载入窗体函数下加入
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.Text = ""
Label2.Text = ""
End Sub
使两个标签一开始没有显示文字
回到设计页面,双击发送按钮,进入按钮点击函数,我们的功能在这个按钮下实现。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim input As String
Dim url As String
Dim data As String
Dim data1 As String
Dim data2 As String
input = TextBox1.Text '获取输入框内容
url = "http://www.tuling123.com/openapi/api?key=yourkey&info=" + input '聊天内容与图灵key链接组合
data = GetData(url) '调用函数,请求链接,获取图灵机器人返回的字符串内容
data1 = "灵儿: " + Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(data, Len(data) - 23), Len(Microsoft.VisualBasic.Right(data, Len(data) - 23)) - 2) ' 去掉左边23个字符,右边2个字符
Label1.Text = Label1.Text + data1 & vbCrLf & vbCrLf '更新lable1的文字,并加回车两行,用于显示机器人的聊天内容
data2 = "you: " + TextBox1.Text '加入前缀,you
Label2.Text = Label2.Text + data2 & vbCrLf & vbCrLf '更新lable2d文字,并加回车两行,用于显示输入的聊天内容
TextBox1.Text = "" '清空输入框
End Sub
加入链接请求函数,使用httpget
Public Shared Function GetData(ByVal url As String) As String
Dim request As HttpWebRequest = WebRequest.Create(url)
request.Method = "GET"
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
点击调试,我们的功能已经可以实现
但是调试时我们发现,每次输入完聊天内容都需要点击发送按钮,很麻烦,我们需要像QQ一样按输入完按回车就完成。我们现在就把这功能加入,添加一个函数,presskey
Private Sub TextBox1_keyup(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.Enter Then '按下enter后
Dim input As String
Dim url As String
Dim data As String
Dim data1 As String
Dim data2 As String
input = TextBox1.Text
url = "http://www.tuling123.com/openapi/api?key=b53e3ba5402047588df24e399bf06971&info=" + input
data = GetData(url)
data1 = "灵儿: " + Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(data, Len(data) - 23), Len(Microsoft.VisualBasic.Right(data, Len(data) - 23)) - 2)
Label1.Text = Label1.Text + data1 & vbCrLf & vbCrLf
data2 = "you: " + TextBox1.Text
Label2.Text = Label2.Text + data2 & vbCrLf
TextBox1.Text = ""
End If
End Sub
检测按下enter后执行与按钮一样的代码点击调试,我们可以使用回车发送聊天内容了,但是我们又发现了一个问题,每次按回车后都会提示报警声,而且输入法默认关闭,每次都要 切换,这是因为textbox输入框只允许输入单行,我们去修改下textbox的属性,在设计页面点击textbox,在属性中找到,并修改,允许多行输入,允许使用输入法。
修改好这两个属性之后,我们再点击调试,发现没哟报警声了,至此,我们需要的功能都实现了。如果想调教自己的机器人,可以在图灵机器人官网修改聊天回答,这里就不累述了。