2017-02-07 5 views
2

Пытается отображать твиты на карте мира с D3 и впервые использовать PubNub для получения потока данных в реальном времени. Возникают проблемы с установкой его и получил следующий код:PubNub Twitter Data Stream setup не возвращает данные

var margin = {top: 20, right: 20, bottom: 20, left: 20}; 

var w = 1100 - margin.left - margin.right, 
    h = 900 - margin.top - margin.bottom; 

var svg = d3.select("#chart") 
      .append("svg") 
       .attr("width", w + margin.left + margin.right) 
       .attr("height", h + margin.top + margin.bottom) 
      .append("g") 
       .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); 

var geoData = "https://raw.githubusercontent.com/johan/world.geo.json/master/countries.geo.json"; 

d3.json(geoData, function(data){ 

    var geo = data.features; 

    var projection = d3.geo.mercator() 
         .scale(150) 
         .translate([w/2,h/2]); 

    var path = d3.geo.path() 
        .projection(projection); 

    svg.selectAll("path") 
     .data(geo) 
     .enter() 
     .append("path") 
     .attr("fill", "#95E1D3") 
     .attr("stroke", "#34495e") 
     .attr("stroke-width", 0.5) 
     .attr("class", function(d){ return d.properties.name}) 
     .attr("d", path); 

var pubnub = new PubNub({ 

    subscribeKey : "my key" 

    }); 

    pubnub.subscribe({ 

    channels: ['pubnub-twitter'], 

    withPresence: true 

    }); 

    pubnub.addListener({ 

    message: function(m) { 

     console.log(m);  

    }, 

    presence: function(p){ 

    console.log(p); 

    }, 

    status: function(s){ 

    console.log(s); 

    } 

    }) 


}) 

Я бы ожидать, что выводит сообщения на консоль, но ничего не происходит. Использование PubNub v4. Может ли кто-нибудь помочь мне?

Вот рабочий Codepen:

http://codepen.io/chemok78/full/mRjXzb/

+0

Ссылка ссылка: [Твитнуть эмоции: анализ в реальном времени с Tweet PubNub данных потока] (https://blog.twitter.com/2014/tweet-emotion-real-time-tweet-analysis- с-pubnub-data-stream) - это аналогичный проект. – PubNub

+0

Да, вы правы, это должно быть 'console.log()' ing. – PubNub

+0

Приведен рабочий пример http://stackoverflow.com/a/42095828/524733 твитов Twitter. – PubNub

ответ

2

Twitter Sample поток Streaming Твиты

Пример Ниже будет печатать все твиты в console.log(). Вы можете проверить это самостоятельно, нажав кнопку «Выполнить фрагмент кода». Вы увидите поток твитов в консоли.

// Create PubNub Socket Handler 
 
const pubnub = new PubNub({ 
 
    publishKey : 'empty' 
 
, ssl   : true 
 
, subscribeKey : 'sub-c-78806dd4-42a6-11e4-aed8-02ee2ddab7fe' 
 
}); 
 

 
// Subscribe to Twitter feed 
 
console.log("Subscribing to Live Twitter Stream."); 
 
pubnub.subscribe({ channels: ['pubnub-twitter'] }); 
 

 
// Add Socket Event Function Handlers 
 
pubnub.addListener({ 
 
    status : statusEvent => console.log(statusEvent) 
 
, message : message  => console.log(message) 
 
});
<script src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.4.2.min.js"></script>

PubNub опубликовал блог в 2014 году, который демонстрирует how to analyze tweets from Twitter's Firehose.

Twitter Tweet Feed Stream