#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()
я был уверен, что существует эквивалент версии 25. В любом случае у меня были некоторые сомнения по поводу замены userStream, поскольку в веб-приложении или приложении Twitter похоже, что мы не видим все твиты всех наших подписчиков. Поэтому лучше всего читать последние сообщения каждого последующего пользователя один за другим и обрабатывать их. Очевидно, что это не сработало бы для потоковой передачи в реальном времени.