【发布时间】:2014-05-04 18:54:39
【问题描述】:
我使用node.js 和nTwitter 创建了一个非常简单的推特机器人。
它搜索“某个单词”并用随机引用回复用户。我已经设法做对了所有事情。代码完美运行和流式传输。
但是有一个巨大的缺点。当机器人回复推文时,它不会在 Twitter 上将其显示为对话。
它所做的只是向发推文“某些词”的人发推文。如下图所示,虽然它回复了用户,但这不是对话,用户没有删除他的推文。
这是我正在谈论的图片:
这是我的代码。令牌由 auth.js 处理
var ntwitter = require('ntwitter');
var auth = require('../auth');
var bot = new ntwitter(auth);
var callback = function handleError(error) {
if (error) {
console.error('response status:', error.statusCode);
console.error('data:', error.data);
}
};
function startStreaming() {
bot.stream('statuses/filter', { track: 'certain word' }, function(stream) {
console.log('Listening for Tweets...');
stream.on('data', function(tweet) {
if (tweet.text.match(/certain\sword/)) {
bot.updateStatus('@' + tweet.user.screen_name + ' True that' ,
tweet.user.screen_name , callback);
}
});
});
}
startStreaming();
我猜问题出在bot.updateStatus()。
请帮帮我。提前致谢。
【问题讨论】:
-
这里的问题是,从技术上讲,您在您的推文中提到了“用户”,而不是回复他的推文。
-
您必须在您的请求中添加一个参数
in_reply_to_status_id(这是您正在回复的用户推文的状态ID。参考:dev.twitter.com/docs/api/1.1/post/statuses/update -
您不需要新方法。在您当前的
updateStatus函数中,在第二个参数中,包含您将从tweet对象获得的in_reply_to_status_id。 -
谢谢 Akash 我试过了,但它做同样的事情。也许我没有正确使用代码。能否请您指导我查看代码的使用示例?
-
谢谢哥们,我想通了。 :)
标签: javascript node.js twitter bots ntwitter