twitter api транслирует домашнюю временную шкалу пользователя

#javascript #node.js #typescript #twitter

#javascript #node.js #typescript #Twitter

Вопрос:

Я пытаюсь stream настроить домашнюю временную шкалу пользователя, как я делал с его публичными твитами.

 export const streamTweets = async function (T: any, socket: any, feed_type: string) {
try {       
    if(feed_type == 'user_timeline') {
        const stream: any = T.stream('statuses/filter', { follow:'1160506639046324444' }); //GTQ twitter a/c ID
        stream.on('tweet', function (tweet: any) {
            let tweetObject = getTweetObject(tweet)
            socket.emit('get tweets', tweetObject);
        }); 

        stream.on('error', (error: any) => {
            throw Error(error);
        });
    } else if(feed_type == 'home_timeline') {
        // const tweets = await T.get('statuses/home_timeline', { count: 10 });
        // let tweetObject = getTweetObject(tweets.data[0])
        // socket.emit('home feed', tweetObject)

        const stream: any = T.stream('statuses/home_timeline'); //PIQ twitter a/c ID
        stream.on('tweet', function (tweet: any) {
            let tweetObject = getTweetObject(tweet)
            socket.emit('home feed', tweetObject);
        });
    }
    
} catch (error) {
    // log errors here..
    throw Error(error)
}
  

}

Я получаю эту ошибку:

   var err = new Error()
        ^
Error: Bad Twitter streaming request: 404
  

что очевидно.

Как я могу транслировать домашнюю временную шкалу пользователя?

Ответ №1:

Поддержка API Twitter для потоковой передачи домашней временной шкалы пользователя отсутствует.

Комментарии:

1. Разве этого не существовало, когда API v2 был впервые представлен?

2. поддержка временной шкалы без дома была выпущена в середине 2022 года (после того, как был представлен API версии v2); нет поддержки потоковой передачи для временных рамок, в примере в этом вопросе используется конечная точка состояния / фильтра версии v1.1, которая является обобщенным API потокового поиска, а не конечной точкой временной шкалы.

3. С API v1 я использовал tweepy.streaming.StreamListener для приема всех твитов аккаунтов, на которые я подписывался, но это было прекращено. Я был уверен, что есть замена…

4. Из моего старого кода from tweepy import OAuthHandler from tweepy import Stream from tweepy.streaming import StreamListener auth = OAuthHandler(ckey, csecret) auth.set_access_token(atoken, asecret) twitterStream = Stream(auth, listener()) twitterStream.userstream() я был уверен, что существует эквивалент версии 2

5. В любом случае у меня были некоторые сомнения по поводу замены userStream, поскольку в веб-приложении или приложении Twitter похоже, что мы не видим все твиты всех наших подписчиков. Поэтому лучше всего читать последние сообщения каждого последующего пользователя один за другим и обрабатывать их. Очевидно, что это не сработало бы для потоковой передачи в реальном времени.