我正在使用twitter-lite
[我正在尝试获取我的主页信息流(将所有的信息发送为人们的信息,一条信息流,但我不能。
我不想过滤掉任何东西,我只想看流。
我的代码
const Twitter = require('twitter-lite')
// removed auth info
const client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
})
let stream = client.stream('statuses/home_timeline', {})
.on('start', response => console.log('start'))
.on('data', tweet => console.log('data', tweet.text))
.on('ping', () => console.log('ping'))
.on('error', error => console.log('error', error))
.on('end', response => console.log('end'))
错误
error Response {
size: 0,
timeout: 0,
_headers:
[Object: null prototype] {
connection: [ 'close' ],
'content-length': [ '0' ],
date: [ 'Sun, 01 Mar 2020 15:10:14 GMT' ],
server: [ 'tsa_b' ],
'set-cookie':
[ 'personalization_id="REMOVEDTHIS=="; Max-Age=63072000; Expires=Tue, 1 Mar 2022 15:10:14 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None',
'guest_id=REMOVEDTHIS; Max-Age=63072000; Expires=Tue, 1 Mar 2022 15:10:14 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None' ],
'strict-transport-security': [ 'max-age=631138519' ],
'x-connection-hash': [ 'REMOVEDTHIS' ],
'x-response-time': [ '6' ],
'x-tsa-request-body-time': [ '1' ] },
[Symbol(Body internals)]:
{ body:
PassThrough {
_readableState: [ReadableState],
readable: true,
domain: null,
_events: [Object],
_eventsCount: 2,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: true,
_transformState: [Object] },
disturbed: false,
error: null },
[Symbol(Response internals)]:
{ url: 'https://stream.twitter.com/1.1/statuses/home_timeline.json',
status: 404,
statusText: 'Not Found',
headers: Headers { [Symbol(map)]: [Object] },
counter: 0 } }
end
我曾经使用另一个称为Twit的程序包,如下所示。如何使用此程序包实现等效功能(在用户发推文时流式传输主页流)?我不想过滤掉任何东西,我只想查看流。
var Twit = require('twit')
var T = new Twit({
consumer_key: '',
consumer_secret: '',
access_token: '',
access_token_secret: '',
timeout_ms: 60 * 1000 // optional HTTP request timeout to apply to all requests.
})
var stream = T.stream('user')
stream.on('tweet', tweet => {
console.log(tweet.text) // new tweet
})
home_timeline不是流,它是您需要轮询的REST端点,尝试从中流式传输的操作将不起作用。
使用twit,您以前已经获得了“用户流”-该API早已被删除,并且不再可能实时获得主时间轴。
您可以执行类似的操作,但是您需要每隔几分钟进行循环或执行一次(注意速率限制,并假设您仍在使用twitter-lite
,我认为这是一个非常不错的库)]
async function getHomeTimeline() {
const result = await client.get("statuses/home_timeline");
console.log(JSON.stringify(result, null, 2));
}
getHomeTimeline();