Подключение Twitter Streaming API к клиенту - PullRequest
0 голосов
/ 17 февраля 2019

Я создаю приложение React / Node.js, которое будет отображать твиты в реальном времени на основе определенного фильтра и выяснило, что мне нужно использовать потоковый API Twitter.К сожалению, после некоторых исследований я вижу, что API Twitter не поддерживают CORS, поэтому я могу вызывать API Twitter только с моего сервера node.js.

Я настроил свой сервер для приема потока из твиттера, и все работает, но теперь мне нужно отправлять эти данные клиенту в режиме реального времени по мере их поступления. Будучи новичком в использовании потоков, яЯ не уверен, что лучший способ держать клиента обновленным каждый раз, когда поток на моем сервере получает новые данные / твиты.

У меня есть несколько смутных идей о том, как справиться с этим, в том числе, возможно, научиться использовать веб-сокеты или события, отправленные сервером, но я никогда не использовал ни один из этих инструментов, поэтому мне трудно определить, является ли это правильным направлением дляидти.

Если у кого-нибудь есть какие-либо советы о том, как справиться с этой ситуацией, я буду очень признателен.

Мой код на стороне сервера выглядит следующим образом ...

// Node.js Server

const Twitter = require('twitter'); // Twitter for Node.js library

//initializing Twitter client
var client = new Twitter({
  consumer_key: 'my key',
  consumer_secret: 'my secret',
  access_token_key: 'token key',
  access_token_secret: 'token secret'
});

//accesses Twitter's statuses/filter streaming endpoint + parameters
var twitterStream = client.stream('statuses/filter', {
  track: 'rangers',
  language: 'en'
});

twitterStream.on('data', function(event) {
  // when the Twitter stream has new data how do I keep the client updated with it?
  console.log(event.text);
});

twitterStream.on('error', function(error) {
  throw error;
});
...