使用管道的简单脸书机器人
使用管道的简单脸书机器人
原文:https://medium.com/hackernoon/easier-facebook-bots-using-pipelines-503da0cd461a
我最近试用了 Fb 机器人,其实挺好玩的。
他们通过某种程度上直截了当的发布过程,让普通开发人员很容易就能创建出机器人。
最简单地说,你需要知道的是:
你需要一个服务器来处理人们输入 FB Messenger 的信息
然后你只需将这些消息发送回 Fb,Fb 再将消息发送给用户。
用 HTTP 术语来说,每次用户发送一条消息,Fb 就把它发送到你的服务器,然后你把响应发送回 Fb,Fb 再把它转发给用户。
管道很好地处理了这种请求/响应模式——著名的是 Express 使用 app.use(function)。让我们构建一个机器人,用. use()函数简化我们的消息处理。
这里,我们将使用一个模块 fbmbot,它将隐藏所有的 express 服务器细节,并公开函数来处理来自 Fb 的消息。它给你这些函数使用,并隐藏了 Express 服务器和 HTTP 通信。
fbmbot -更简单的 Facebook Messenger 机器人
github.com](https://github.com/digplan/fbmbot)
var bot = require('fbmbot')();
bot.onmessagetext = (user, txt, body) => {
bot.sendText(user.id, 'Hi') // (fbid, txt, [wait seconds, metadata]
}
bot.onpostback = (user, postback) => {
...
}
bot.setupGetStartedButton() one-time
bot.sendTypingOn(user.id)
bot.sendQuickReply(user.id, [])
bot.sendPromptLocation(user.id)
bot.queryUser(user.id, callback)
bot.sendMessage(user.id, {})
bot.users // [users since bot was restarted]
bot.app // express app
我会用优秀的 Gomix @gomixme 游乐场做 bot。我们可以简单地使用这个模块来处理请求,我们的机器人是这样创建的:

Fb 有“回发”的概念,即当某人点击一个按钮时。这将在用户开始新对话时运行。
onmessage text 将处理初始消息之后的新消息。
现在,我们来介绍一个处理管道,ala Express。使用()
在这里,我们创建了自己的“用户管理器”,它将通过 id 查询一个用户信息,并将其保存在 users={}中。如果需要在服务器重启时保存,我们可以将它保存在某个地方。即时用户管理器!
请记住,这些过程顺序相反。第一个 bot.use()检查并查看我们是否有用户信息。然后,它发送回带有用户名的响应。
这些管道允许以可组合的方式制作你的机器人。
黑客中午是黑客如何开始他们的下午。我们是 @AMI 家庭的一员。我们现在接受投稿并乐意讨论广告&赞助机会。
要了解更多信息,请阅读我们的“关于”页面、在脸书上点赞/给我们发消息,或者简单地说, tweet/DM @HackerNoon。