Articles of 机器人

Etherscan / Telegram API bot(电报)

我有兴趣build立一个电报机器人,将更新用户在etherscan API信息。 所以当一个用户用一个string向机器人发送消息时,它会返回一些简单的数据。 我如何使用API​​? 我已经阅读了许多教程,但是我不太了解API的工作原理。 我想使用节点js 谢谢你对这个广泛的问题的任何回应

如何在使用botframework的luisaction绑定的同时保持privateConversation数据?

我跟着这个 ,用在我的机器人。 有一件事我不明白是如何坚持用户数据。 例如: user: what is my status? bot: could you provide your id? user: its xxx bot: its in so and so stage. 现在如果用户提出同样的问题机器人不应该要求身份证(应直接回答) user: what is my current status? bot: what is your id? <——— this is not expected of the bot.

discord.js – 机器人超时

我最近用node.js创build了一个discord.js机器人。 但是,我无法启动我的机器人,因为它超时。 Error: Something took too long to do. at timeout.client.setTimeout (C:\Users\User\Desktop\tntbot\node_modules\discord.js\src\client\ClientManager.js:40:57) at Timeout.setTimeout (C:\Users\User\Desktop\tntbot\node_modules\discord.js\src\client\Client.js:422:7) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5) 这就是我一开始就得到的。 我检查了代码,它没有问题。 请帮忙。

Slackbot api无法收到消息

我正在用NodeJS构build一个SlackBot。 我目前使用这个库slackbots ,但问题是,初始化后,机器人不出现在应用程序类别,但它是在SlackBot内,每次我input一条消息,它会返回一条错误消息: I'm sorry, I don't understand! Sometimes I have an easier time with a few simple keywords. Or you can head to our wonderful Help Center for more assistance! 另一方面,当我发送消息给用户时,我可以看到我设置的bot: 我怎样才能让机器人Hugo与SlackBot内部的SlackBot分开? 这就是我设置它的方式: var SlackBot = require('slackbots'); var bot = new SlackBot({ token: process.env.SLACK_TOKEN, name: 'Hugo' }); function get() { return bot; } exports.get […]

在Facebook Messenger Bots中发送多个回复消息

我想发送多个回复,以便在Messenger上单个用户触发的回发。 我一直在关注Messenger的开发人员文档 ,并不能真正find如何做到这一点。 我的代码结构与他们在网站上给出的教程非常相似,我有一个“ handlePostback ”函数,它识别收到的回发,并将其与一组预定义的有效负载进行比较,以find“ 响应 ”JSON对象。 这个响应被赋予了“ callSendAPI ”,它把这个JSON对象变成了把消息发送回Messenger API的基本格式。 function handlePostback(sender_psid,receivedPostback) { if(payload== 'defined_payload') { response = { text: 'Some text' }; callSendAPI(sender_psid,response); } function callSendAPI(sender_psid,response) { let body = { recipient: { id= sender_psid }, message: response }; // Followed by code for POST request to the webhook } 这是基本的结构,现在我想发送多个消息作为回复一个回发 。 […]

将HTML快照提供给Moz SEO机器人

我正在使用Phantom在我的网站上预渲染每天的dynamic页面。 然后,我编写了一些代码来检查请求的用户代理,并在请求来自bot时提供预渲染的HTML快照。 我的一些机器人是: var socialBots = [ "facebookexternalhit/1.0", "facebookexternalhit/1.1", "FacebookExternalHit", "twitterbot", "TwitterBot", "Twitterbot/1.0", "LinkedInBot", "rogerBot", "rogerBot/1.0" ]; 然后我的nodeJS代码(使用Express)来监听漫游器并提供快照: app.use(function(req, res, next){ var userAgent = req.get("user-agent"), socialBot = false; for (i=0; i<socialBots.length; i++) { if (userAgent.indexOf(socialBots[i]) > -1) { socialBot = true; break; } } if (socialBot) { //serve snapshot } }); 这对Facebook和Twitter工作正常,但数组rogerBot的最后一行应该为Moz SEO,似乎并没有工作。 Moz SEO没有得到我的快照,这是最后一次抓取。 […]

Node.js .match()方法的正确用法?

我从一个人那里买了一些代码,然后决定修改它。 首先,它是用Node.js编写的,我对node.js有很less(没有)编程经验,虽然我知道像样的Python和一些C#,所以我理解它。 尽pipe我一开始想编写代码,但是我没有成功地复制他所做的。 steamFriends.on('friendMsg', (id, msg) => { if (config.get('admins').indexOf(id) == -1) return; if (msg.indexOf('!price') == 0) { var match = msg.match(/!price (director|audition) ([\.0-9]+)/); if (!match) steamFriends.sendMessage(id, 'Usage: !price <director or audtion> <price> (eg !price director 3.77)'); else { steamFriends.sendMessage(id, 'Successfully set price of '+match[1] + ' reels to '+match[2] + '!'); PRICES[match[1] == 'audition' […]

我是否需要使用Ajax来不被视为机器人?

tl; dr:有人能指出我在正确的方向复制通过Ajax在Chrome扩展中抓取网页…但在node.js? 我想采取相关的教程,但不知道从哪里开始。 == ==目标 作为教自己编码的一种方法,我构build了一个node.js应用程序来拉我的Goodreads.com书单( 使用Goodreads的API ),然后search旧金山公共图书馆的Overdrive目录(一个不包含在Goodreads的API)。 我对第二部分有挑战。 我正在使用Chrome扩展程序Goodreads( https://github.com/rhollister/goodreads )作为指导,而且我正在取得进展 – 上周,我学到了所有有关正则expression式(令人沮丧的有趣)。 == ==问题 当我使用http.request(library_search_url)时,该站点将返回一个警告:“访问此function已针对networking机器人禁用”。 看扩展代码,似乎他们在后台窗口中使用Ajax来刮页面。 == ==问题 我试图根据这里的一些研究来改变我的要求(例如, Node不能刮取某些页面 ),但是这并不奏效。 我是否需要学习expression,并做这样的事情( http://mherman.org/blog/2013/10/20/handling-ajax-calls-with-node-dot-js-and-express-scraping-craigslist/ )为了达到我想要的? 如果不是这样,我还有其他的方法可以学习吗? (注:我不是在寻找代码本身 – 只是一个方向,所以我可以去学习我需要学习的东西。) 谢谢! 对于上下文,下面是使我认为这是基于Ajax的抓取的代码: $.ajax({ url: url, success: parseODResults(bookSearchTerms, l, libraryShortName, libraryStr, library.newDesign, searchTerm, url), error: function(request, status, error) { if (sender) { chrome.tabs.sendMessage(sender.tab.id, { type: 'FROM_AG_EXTENSION' […]

麻烦连接webhook到Facebook messenger bot

我正在尝试使用NodeJS,Express和一个heroku服务器创build一个Facebook chatbot。 我在heroku上创build了我的webhook,并通过Facebook进行了validation和保存。 然后我运行这个代码来连接我的webhook到Facebook。 curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<token>" 这个返回{success:true}。 所以然后我开始添加回复传入消息的代码,但我似乎无法连接。 每当我发送消息,我都没有回复。 这是我的代码: var express = require('express'); var bodyParser = require('body-parser'); var request = require("request") var app = express(); var port = process.env.PORT || 3000; // body parser middleware app.use(bodyParser.urlencoded({ extended: true })); app.get('/', function (req, res) { if (req.query['hub.verify_token'] === '8FKU9XWeSjnZN4ae') { res.send(req.query['hub.challenge']); console.log("app.get […]

节点Restify发回一个整数?

这是当我尝试让我的机器人通过Facebookvalidation我的url时得到的。 我知道这是一个数据types的问题。 我发回一个string,而不是一个int。 这是我的代码看起来像: server.get("/webhook/",function(req,res,next){ var token = req.query.hub.verify_token; if( token === process.env.VALIDATION_TOKEN ){ var challenge = parseInt( req.query.hub.challenge ); res.send( req.query.hub.challenge ); }else{ res.send("Error, wrong validation token"); } return next(); }); 尽pipeparseInt() , res.send()返回一个string。 我如何得到它发回int?