Создание бота в Твиттере для:
- поиска твитов с ключевыми словами, такими как "Net Neutrality"
- Возвращение идентификаторов твитов и имен пользователей для этих твитов
- Публикациятвит в ответ этому пользователю (через in_reply_to_status_id , как описано в Twitter Docs )
Вот мой текущий код:
const Twitter = new twit(config);
let tweet = function() {
let params = {
q: '#netneutrality, #savethenet, Net Neutrality',
result_type: 'mixed',
lang: 'en'
}
// search through all tweets using our params and execute a function:
Twitter.get('search/tweets', params, function(err, data) {
// if there is no error
if (!err) {
// loop through the first 4 returned tweets
for (let i = 0; i < 4; i++) {
// iterate through those first four defining a rtId that is equal to the value of each of those tweets' ids
let rtId = data.statuses[i].id_str;
let username = data.statuses[i].username;
// the post action
Twitter.post('statuses/update', {
// setting the id equal to the rtId variable
in_reply_to_status_id: rtId
, status: `@${username} Send single-click #SaveTheNet tweets to key politicians at fliplist.app. Take 60 seconds to protect our Internet, once and for all.`
// log response and log error
}, function(err, response) {
if (response) {
console.log('Successfully tweeted');
}
if (err) {
console.log(err);
}
});
}
}
else {
// catch all log if the search could not be executed
console.log('Could not search tweets.');
}
});
}
tweet();
setInterval(tweet, 600000);
Когда я запустил его, был успешный вывод («Успешно твитнул» 4 раза в терминале), и действительно было 4 новых твита, опубликованных с моего аккаунта.
Однако имя пользователя во всех этих твитах было @undefined.
Итак, я думаю, что я либо не могу собрать эти имена пользователей из соответствующих твитов, либо не могу соответствующим образом добавить их в строку состояния.
Есть предложения, как мне это исправить?
Для справки, вот ссылка на один из @ неопределенных твитов: https://twitter.com/ProoveTweets/status/1075855455958765569
И скриншот прикреплен здесь