0

我正在使用此代码从客户端连接到 Twitter Stream(我需要坚持使用此方法,请不要提供替代方法) - 我正在尝试了解如何将结果限制为仅显示一条推文(最新一)。现在它显示了结果中的所有推文。我编辑了搜索 URL 中的主题标签和用户名,如果有人想帮助我,请插入您自己的。这是代码:

<div id="tweet_stream">
Loading #Apple tweets...
</div>
<script type="text/javascript">
jQuery(function(){
// Execute this code when the page is ready to work
// Create a Script Tag
 var script=document.createElement('script');
 script.type='text/javascript';
 script.src= "http://search.twitter.com/search.json? q=%23HASHTAGHERE+from:USERNAMEHEREr&callback=processTheseTweets&_="+ new Date().getTime();
 // Add the Script to the Body element, which will in turn load the script and run it.
 $("body").append(script);
 });

 function processTheseTweets(jsonData){
 var shtml = '';
 var results = jsonData.results;
  if(results){
 // if there are results (it should be an array), loop through it with a jQuery function
  $.each(results, function(index,value){
  shtml += "<p class='title'><span class='author'>" + value.from_user + "</span>: " +
  value.text + "<span class='date'>" + value.created_at + "</span></p>";
  });

 // Load the HTML in the #tweet_stream div
  $("#tweet_stream").html( shtml );
  }
 }
 </script>

我还试图让最终结果显示推文的 HTML 版本,以便显示链接。做这些事情的任何帮助都会非常棒!谢谢

4

2 回答 2

0

您正在 $.each() 中创建结果数组的每个元素的 html 并将其附加到 shtml 变量中。无需遍历结果,只需找出最新推文的索引即可。它可能是第一个元素(索引 0)、最后一个元素(索引 results.length-1)或其他基于您的逻辑的元素。

var index = 0; //suppose its first element.
var value = results[index];
shtml = "<p class='title'><span class='author'>" + value.from_user + "</span>: " + value.text + "<span class='date'>" + value.created_at + "</span></p>";
$("#tweet_stream").html( shtml );

现在你有了tweet的html版本。如果要显示,请使用 text() 而不是 html()。

$("#tweet_stream").text( shtml );    
于 2012-04-07T09:27:12.453 回答
0

您为什么不将 api 限制为仅提供 1 条推文,而不是获取所有推文并显示 1 条推文?

将网址更改为此,

script.src= "http://search.twitter.com/search.json?q=%23HASHTAGHERE+from:USERNAMEHEREr&callback=processTheseTweets&rpp=1&_="+ new Date().getTime();

即设置rpp(每页结果)为1

于 2012-04-07T18:52:14.617 回答