WhatsApp WikiBot
由 Twilio WhatsApp API 和 DuckDuckGo Instant Search API 提供支持🤖
\゜o゜)ノ
几个月前,我开始在Telegram上制作聊天机器人——我见过一些 WhatsApp 的 API,但它们是非官方的,而且你的号码有可能会被屏蔽📱❌
不久前,我看到Twilio有一个官方的 WhatsApp API。30 分钟后,我在 WhatsApp 上创建了一个维基百科机器人👇
这是一个教程,可以帮助你制作类似这样的程序,即你在 WhatsApp 上创建自己的聊天机器人——这些机器人可以立即供超过 20 亿用户使用,而且有很多可能性🎓
我迫不及待想看看你做了什么!现在,我们开始吧🏃♂️
首先,注册Twilio - 它是免费的,你不需要信用卡💳
验证完您的电话号码后,选择 Procuts > Programmable SMS,然后继续命名您的项目。
您可以跳过添加队友的步骤 - 目前您不需要这些步骤。
现在您必须记下构建 WhatsApp 机器人所需的一些身份验证密钥👇
最后一步 -在这里设置您的 WhatsApp 沙盒- 选择任意号码,然后按照页面上的说明加入您的沙盒。
好了,你的凭证设置完成了!别担心,这是本教程中最难的部分 😛
为了避免在设置上花费太多时间,我创建了一个环境(使用repl.it!),您可以在浏览器中使用。点击此处,等待几秒钟即可 fork 它。
接下来,创建一个.env
文件1
- 并在行和行上输入您的帐户 SID 和身份验证令牌2
SID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX # Account SID
KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX # Auth Token
可以看到,此环境已安装依赖项并express
设置了服务器。不过,我们仍然需要为 Twilio 提供一个 URL 来发送消息。
让我们回到WhatsApp Sandbox,并输入用于接收消息的 webhook URL。
此 URL 必须是您在repl.it项目的预览面板上看到的 URL +/incoming
现在我们终于可以读取发送给机器人的消息了。导航到Webhook 处理程序,index.js
然后在其中添加一个简单的代码👇console.log()
app.post('/incoming', (req, res) => {
console.log(req.body)
});
当你向你的机器人发送消息时,你应该能够在你的 repl 控制台中看到类似的内容👨💻
构建一个 echo 机器人看起来就像这样,用来twiml
写一条消息 👇
app.post('/incoming', (req, res) => {
const twiml = new MessagingResponse();
twiml.message(req.body.Body);
res.writeHead(200, {'Content-Type': 'text/xml'});
res.end(twiml.toString());
});
但是,由于我们实际上正在尝试构建一个有用的机器人 - 让我们使用信息丰富的 API!
DuckDuckGo 拥有出色的免费即时答案 API。它接收查询并返回来自 WikiPedia 等内容的摘要。
一些例子👉 WikiPedia,Macbook Air,Twilio
我花了一些时间创建了一个不错的解析器,它通常会从这个 API 返回信息。试着把这段代码粘贴到你的repl.it项目中,你的控制台应该会显示关于特朗普的信息 😛
var base = 'https://api.duckduckgo.com/?skip_disambig=1&format=json&pretty=1&q=';
var query = 'Donald Trump';
request(base + query, function (error, response, body) {
body = JSON.parse(body)
if(body["Abstract"] == ""){
body["Abstract"]= body["RelatedTopics"][0]["Text"]
}
var msg = body["Heading"]+"\n\n"+body["Abstract"];
console.log(msg)
});
很简单吧?😄
为了制作我们真正的机器人,我们需要做的就是从我们的请求中获取查询 - 我们可以获取req.body.Body
- 并用它twmil
来发送我们在msg
app.post('/incoming', (req, res) => {
const twiml = new MessagingResponse();
var base = 'https://api.duckduckgo.com/?skip_disambig=1&format=json&pretty=1&q=';
var query = req.body.Body;
request(base + query, function (error, response, body) {
body = JSON.parse(body)
if(body["Abstract"] == ""){
body["Abstract"]= body["RelatedTopics"][0]["Text"]
}
var msg = twiml.message(body["Heading"]+"\n\n"+body["Abstract"]);
res.writeHead(200, {'Content-Type': 'text/xml'});
res.end(twiml.toString());
});
});
现在,你拥有一个功能齐全的 WhatsApp 机器人了!发送任何你想知道的关于你的机器人的信息吧🤖,你应该会看到它回复得超级快💬⚡
添加欢迎消息和一些格式非常简单,查看最终的回复以了解我是怎么做的👨💻
为了让其他人使用此机器人,他们需要先加入你的沙盒 - 然后像你之前一样发送消息👉join <two-words>
您也可以使用此文本创建链接 - 例如,此链接可让您加入我的机器人👇
https://wa.me/14155238886?text=join ultramarine-tapir
14155238886
是我的机器人的号码,而ultramarine-tapir
是沙盒短语。
现在你已经知道如何在 WhatsApp 上构建机器人了,不妨试试给自己发通知,并构建更多实用的工具!Twilio 还有很多其他的通讯媒介!
我的 WikiBot 的所有代码都在Github上⬇️
由 Twilio WhatsApp API 和 DuckDuckGo Instant Search API 提供支持🤖
\゜o゜)ノ
我是一个 15 岁的创客👨💻想要制作更多酷炫的东西并随时了解我的进度,请订阅我的时事通讯📧
文章来源:https://dev.to/jajoosam/build-a-whatsapp-bot-fast--2hdc