编写你第一个聊天机器人

Script Your First ChatBot




@loddit



你知道的聊天机器人有?


Siri 


微软小冰


微信公众号



到底是什么才是聊天机器人?


聊天机器人本质是一个程序
这个程序能有一个机器人身份
可以在一个聊天交互界面向用户发送消息



今天我们讨论只最容易编写的聊天机器人




三种最常见的聊天机器人类型



Incoming       Outgoing          Hubot

          


Incoming 机器人






Incoming 机器人的技术要点


本质是 HTTP 请求

每个 Incoming 机器人都有一个 URL 接受这个请求


触发请求的时机

是定时触发?还是满足某条件触发?


请求的数据结构

JSON 里面支持那些字段


Outgoing 机器人



Outgoing 机器人的技术要点


本质是 HTTP 服务器

需要有自己的 URL 供外部调用


解析用户输入

从消息里找出代表用户意图的关键词


请求外部服务

了解外部的服务 API 如何使用


Hubot 机器人

Hubot 机器人的技术要点


本质是持续运行的程序

需要部署在某台服务器上运行


Hubot 生态

开源社区已经贡献了上千种 Hubot 插件


连接内部服务

使用 Hubot 脚本让内部系统可以方便调用


消息的数据结构


{
  "text": "hello world", //消息正文
} 

curl 'https://hook.bearychat.com/xxxx' \ 
     -H 'Content-Type: application/json' \ 
     -d '{"text": "hello world"}'

 
{
  "text": "hello world", //消息正文
  "attachments": [       //附件列表
    {
      "title": "This is BearyChat",  // 附件 1 的标题
      "url": "http://bearychat.com", // 附件 1 的链接
      "text": "Welcome to the ChatOps World", // 附件 1 的正文
      "color": "#000", // 附件栅格的颜色
      "images": [
        {
          "url": "https://xxxx/logo.png", // 附件 1 的图片的 URL
        }
      ]
    }
  ]
}



欲善其事,必利其器


知道一些开发调试常用的工具

模拟请求的 POSTMAN

查看请求的 RequestBin

在线编程的 webscript

postman api 的图像结果


requestbin 的图像结果


webscript 的图像结果

在线编程服务 WebScript.io


无需任何本地环境

保存即部署 

支持存储

支持定时任务

有常用 API

使用 Lua 语言



头脑风暴你的机器人创意

Made with Slides.com