【问题标题】:How do I get only the new tweets per request using Twitter API?如何使用 Twitter API 仅获取每个请求的新推文?
【发布时间】:2013-05-18 21:56:25
【问题描述】:

我正在尝试从 Twitter API 获取包含一些主题标签的新推文。我感兴趣的是每次我请求结果时新推文的数量。像这样:

10:20 AM: 100 tweets containing #google 
10:22 AM: 130 tweets containing #google

但现在不知何故,我的结果保持不变。这是我的代码:

PHP (tweets.php):

<?php 

$json = file_get_contents('http://search.twitter.com/search.json?q=%23apple:)&include_entities=true&rpp=100', true);
echo $json;
?> 

Javascript:

function getTweets() {
    var tweets = 0;
    $.ajax({
        url: "tweets.php",
        crossDomain: true,
        dataType: 'JSON'
        }).done(function(data) {
            $.each( data.results, function( key, value ) {
                console.log(value.entities);
                tweets++;

            });

    });
}
$(document).ready(function() {

    setInterval("getTweets()", 5000);

});

我怎样才能只获得更新?

编辑:我的代码有效,但结果并没有真正更新。它们只是一遍又一遍的相同结果。

【问题讨论】:

    标签: php ajax jquery twitter


    【解决方案1】:
    $(document).ready(function() {
    
        setInterval(function(){ getTweets();}, 5000);
    
    });
    

    【讨论】:

    • 您在 setInterval 中将函数作为字符串传递。它在第一个参数中需要一个可执行代码。
    • 结果仍然包含每次与新推文混合的旧推文。上次之后我怎么才能得到新的?
    • 您必须在抓取数据的服务器端脚本中指定此项。从返回的 json 数组中仅提取最后一项、两项或三项。因为我们无法猜测这是最新的推文
    【解决方案2】:

    file_get_contents() 返回一个 string 数据类型,而不是 JSON。看看这是否有效:

    $json = json_encode(file_get_contents('http://search.twitter.com/search.json?q=%23apple:)&include_entities=true&rpp=100', true));
    

    【讨论】:

    • 这可能是由于您的函数开始时的var tweets = 0;。这将使tweets++; 无用。也许试试var tweetCounter += tweets; 之类的东西?
    猜你喜欢
    • 2015-02-21
    • 2013-06-09
    • 2022-01-23
    • 2013-05-29
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    相关资源
    最近更新 更多