【问题标题】:Display most recent Tweets from User (last 20 or so)显示来自用户的最新推文(最近 20 条左右)
【发布时间】:2012-06-26 01:06:24
【问题描述】:

我在http://www.urbanvision.org.uk/ 有一个网站,我们在右侧有一个 Twitter 提要。大部分网站都有这个 twitter 提要。

我们遇到了一个问题,当我们在过去三天左右没有发推文时,没有任何推文显示。虽然我们计划发布越来越多的推文,但有一种方法可以改变下面的代码,只显示最后 20 条左右的推文。

我知道 Twitter 有它自己的限制,但如果我真的觉得这一切都太混乱了,无法理解。

当前 JS 代码:

var tweetUsers = ['urbanvision_uk'];
var buildString = "";

    $(document).ready(function(){

        $('#twitter-ticker').slideDown('slow');

        for(var i=0;i<tweetUsers.length;i++)
        {
            if(i!=0) buildString+='+OR+';
            buildString+='from:'+tweetUsers[i];
        }

        var fileref = document.createElement('script');

        fileref.setAttribute("type","text/javascript");
        fileref.setAttribute("src", "http://search.twitter.com/search.json?q="+buildString+"&callback=TweetTick&rpp=50");

        document.getElementsByTagName("head")[0].appendChild(fileref);

    });

    function TweetTick(ob)
    {
        var container=$('#tweet-container');
        container.html('');

        $(ob.results).each(function(el){

            var str = ' <div class="tweet">\
                        <div class="avatar"><a href="http://twitter.com/'+this.from_user+'" target="_blank"><img src="'+this.profile_image_url+'" alt="'+this.from_user+'" /></a></div>\
                        <div class="user"><a href="http://twitter.com/'+this.from_user+'" target="_blank">'+this.from_user+'</a></div>\
                        <div class="time">'+relativeTime(this.created_at)+'</div>\
                        <div class="txt">'+formatTwitString(this.text)+'</div>\
                        </div>';

            container.append(str);

        });

        container.jScrollPane();
    }

    function formatTwitString(str)
    {
        str=' '+str;
        str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
        str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');
        str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
        return str;
    }

    function relativeTime(pastTime)
    {   
        var origStamp = Date.parse(pastTime);
        var curDate = new Date();
        var currentStamp = curDate.getTime();

        var difference = parseInt((currentStamp - origStamp)/1000);

        if(difference < 0) return false;

        if(difference <= 5)             return "Just now";
        if(difference <= 20)            return "Seconds ago";
        if(difference <= 60)            return "A minute ago";
        if(difference < 3600)           return parseInt(difference/60)+" minutes ago";
        if(difference <= 1.5*3600)      return "One hour ago";
        if(difference < 23.5*3600)      return Math.round(difference/3600)+" hours ago";
        if(difference < 1.5*24*3600)    return "One day ago";
        if(difference < 1.5*48*3600)    return "Two days ago";
        if(difference < 1.5*720*3600)   return "Over a month ago";

        var dateArr = pastTime.split(' ');
        return dateArr[4].replace(/\:\d+$/,'')+' '+dateArr[2]+' '+dateArr[1]+(dateArr[3]!=curDate.getFullYear()?' '+dateArr[3]:'');
    }

如果我们也能带来转发和提及,那也很酷。

一如既往,我们将不胜感激。

【问题讨论】:

  • 你好 Ben,你想检索最后 20 条推文??
  • @iNan 是的,如果可以的话,可以更多,但如果我们不能像其他几周那样定期发布推文,那么 20 是一个不错的数字。最近的排在第一位,等等。

标签: javascript twitter tweets


【解决方案1】:

为方便起见,我建议使用官方 twitter-widget 并对其进行自定义。这是一篇描述该问题的好文章:http://www.1stwebdesigner.com/css/customize-twitter-search-widgets/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2015-12-03
    • 2011-05-16
    相关资源
    最近更新 更多