如何获取REST API的推文,就像它来自Stream API一样

时间:2015-07-19 17:18:42

标签: javascript api rest twitter stream

我目前正在构建Twitter应用程序,因为特定功能需要两个月才能遇到问题。

这就是我想要做的:显示用户Twitter列表中的推文,并使用新推文刷新它们。 Twitter提供流API以立即获取新推文。但是,要获取列表的推文,Twitter API只允许我通过REST API而不是流API。

我的想法是定期进行REST API调用,比较新推文,然后将每条新推文添加到界面“就好像它是真正的流”。

为此,我已经完成了下面的功能来比较一个对象数组。我正在检查每个推文ID以进行比较。测试已经完成并且都已通过。

不幸的是,我的应用程序表现得很笨拙并且不断添加推文,即使它们在当前和传入的推文之间没有差异。 所以,也许问题来自其他地方,但我认为这不是提交代码页面以帮助我解决问题的地方。 (但如果你有兴趣,我可以分享代码)。

所以这是我的问题:我做得对吗,还是你看到了我想做的更好的解决方案?

/**
 * Return the difference between the current messages in the array and the incoming
 * @param  {Array} incoming Array of incoming tweets
 * @return {Array} current  Array of current tweets
 */
MessagesDisplay.prototype.compareCurrentListWithIncoming = function(incoming, current){
    // Return the elements not present in the array
    Array.prototype.diff = function(a) {
        return this.filter(function(array) {
            var exist = false;
            for (var i = 0; i < a.length; i++) {
                if(array.id_str === a[i].id_str){
                    exist = true;
                }
            };
            if(!exist){
                return array;
            }
        });
    };
    var messagesToAdd = []; 
    
    messagesToAdd = incoming.diff(current);

    return {
        messagesToAdd: messagesToAdd,
    };
}

0 个答案:

没有答案