1

私は現在、Twitter からツイート (「awesome」などの検索トピック) を取得して表示するスクリプトを持っています。このスクリプトは、最新の 20 個のツイートを表示します。

スクリプトをさらに発展させたい。ページが読み込まれた後に新しいツイートがツイートされたかどうかを確認したいと思います。そうであれば、ページごとに 20 しか表示されません (したがって、すべて下に移動します)。

これが現在私がこれまでに持っているものです:

<?php

function get_file($uri) {       
    return file_get_contents($uri);
};

$xml = get_file('http://search.twitter.com/search.atom?q=awesome%20-rt&lang=en&rpp=20');
$tweets = new simpleXMLElement($xml);
?>
<div id="entries">
    <?php
    foreach ($tweets->entry as $tweet) {    
        echo '<div class="entry">';
        echo '<img class="tweet-pic" src="'.$tweet->link[1]->attributes()->href.'" />';
        echo '<p class="tweet">'.$tweet->title.'</p>';
        echo '<p class="tweep"><a class="link" href="'.$tweet->link[0]->attributes()->href.'">'.$tweet->author->name.'</a></p>';
        echo '<div class="clear"></div>';
        echo '</div>';
        echo '<hr/>';
    }
    ?>  
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" language="javascript"></script>

<script>
$(document).ready(function(){
getlatest();
});
function getlatest() { 
$.ajax({
    type: "GET",
    url: "index.php",
    cache: false,
    success: function(html){
            $("div#entries").prepend(html);
            $(".entry").slideDown("1000");
        }
});

setTimeout("getlatest();",10000);
}
</script>

どんな助けでも大歓迎です。

4

1 に答える 1

0

XML を取得すると、各ツイートにタイムスタンプが関連付けられます。ここから、AJAX 呼び出し ( setTimeoutを使用して X 回ごとに実行できます) で、リスト内の最初のツイートと XML からの最初のツイートを比較できます。

日付が新しい場合は、次のことを行う必要があります。

  • 最初のツイートの次のツイートを探します。つまり、XML からの最初のものは、呼び出しに固有の新しいものである必要はありません。
  • 見つけたばかりのツイートから始めて、すべての新しいツイートを取得します。
  • HTML をツイートの新しいものに置き換えます。
于 2011-02-21T21:03:30.060 に答える