Я пытаюсь скомпилировать потоки из твиттера, но нет способа скомпилировать твиты напрямую с помощью Twitter API.
Следовательно, используя библиотеку узлов twit , я написал следующий код для компиляции потоков.
var Twit = require('twit');
var twitter = new Twit({
consumer_key: "mykey",
consumer_secret: "mysecret",
access_token: "token",
access_token_secret: "secret",
});
const tweetId = '1126756595935862787';
twitter.get('statuses/show/:id', {id: tweetId}, (err, res, mess) => {
if(err) return console.log('Error: ', err);
console.log('Tweet: ', res.text);
console.log('=====replies=====');
parseTimelineforReplies(tweetId);
})
async function parseTimelineforReplies(id) {
twitter.get('statuses/user_timeline', {screen_name: 'paraschopra', since_id: id, exclude_replies: false, count: 5000, include_rts: true}, (err, tweets, res) => {
if(err) return Promise.reject('Error getting users timeline', err);
console.log('Length', tweets.length);
for(let t of tweets) {
if(t.in_reply_to_status_id_str === id) {
console.log(t.text);
console.log('----');
parseTimelineforReplies(t.id_str);
}
}
return Promise.resolve(tweets);
});
}
В приведенном выше коде я сначала получаю указанный c твит, используя его идентификатор, а затем я пытаюсь сопоставить этот идентификатор в user_timeline
как ответить рекурсивно, чтобы получить все ответы и сформировать цепочку.
Это прекрасно работает для последних твитов, но tweetId
, который я использовал в приведенном выше примере, это твит , который, очевидно, является потоком и имеет ответы.
Но вот что я получаю:
Tweet: Some thoughts on how to rise up in the economic ladder.
(A thread) //From first tweet
=====replies=====
Length 200
//None of the replies are matching
Я не могу понять, что происходит, моя гипотеза состоит в том, что API извлекает самые последние твиты после этого твита, поэтому он пропускает нить, потому что этот твит был создан 10 мая 2019 года.
Помощь будет очень признательна.