使用jQuery和Ajax的Twitter搜索API - 如何在我的演示没有显示结果的情况下检索数据

时间:2013-04-08 12:37:55

标签: javascript jquery ajax twitter

我正在尝试根据各种主题添加Twitter搜索时间轴,例如搜索不同节日的所有最新推文。我发现了一个关于如何使用带有Jquery和Ajax的twitter API对不同推文进行常规搜索的tuturial,但在我进一步发展之前,当我在浏览器中运行网页并尝试不同时,我没有显示任何结果搜索主题。代码类似于tuturial,我仍在学习不同的twitter API来帮助我完成我的项目,但我认为我仍然感到困惑。请有人请看我的代码并告诉我我做错了什么。这是一个JSFiddle来演示我的问题:http://jsfiddle.net/YSBtC/这是javascript代码的主要来源

$(document).ready(function(){
        $('#search').click(function(){
            $('#results').html('');
            console.log($('#i').val());
            var search_term = $('#i').val();
            $.ajax({
                type: 'GET',
                dataType: 'jsonp',
                url: 'http://search.twitter.com/search.json',
                data:{q: search_term},
                success: function(data){
                    $.each(data.results, function(index, tweet){
                        $tweets = $(".tweet").first().clone();
                        console.log(tweet);
                        $tweets.find('.img').attr('src', tweet.profile_image_url)
                        $tweets.find('.name').text(tweet.from_user_name);
                        $tweets.find('.handle').html(twttr.txt.autoLink("@"+tweet.from_user));
                        $tweets.find('.text').html(twttr.txt.autoLink(tweet.text));
                        $tweets.hide().appendTo('#results').delay(400).fadeIn();
                    });
                }
            });
        });
    });

我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

因为JavaScript在以下几行崩溃:

$tweets.find('.handle').html(twttr.txt.autoLink("@"+tweet.from_user));
$tweets.find('.text').html(twttr.txt.autoLink(tweet.text));

您正在尝试访问名为twttr的变量,该变量不存在(至少不在您发布的代码中)。这就是#results div为空的原因。

删除这些行(或正确初始化这些变量)将解决您的问题。

看到这个小提琴:http://jsfiddle.net/YSBtC/1/

答案 1 :(得分:0)

您的代码中的网址已在Twitter API中弃用。

正确的网址是https://api.twitter.com/1.1/search/tweets.json,但需要经过适当的身份验证。 有关详细信息,请参阅API文档https://dev.twitter.com/docs/api/1.1/get/search/tweets