2012-05-16 99 views
0

我正在使用搜索api來獲取特定用戶的推文。它完美的工作,除了它無法獲取用戶名包含數字的鳴叫。麻煩從twitter搜索API遷移到狀態api

所以建議我用狀態API的查詢替換查詢。但我現在無法解析它!

在舊代碼下方顯示推文詳情。

function displayTweets(data) { 
     //var data = JSON.parse(d); 
     $("#heading").html("Tweets: <span class='handleName'>@"+handle+"</span>"); 
    $("#loading").remove(); 
    $("#tweets").children().remove(); 
    alert("1"); 
    $.each(data.results, function(i, tweet) { 
     alert("hi"); 
     if(tweet.text !== undefined) { 
     // Calculate how many hours ago was the tweet posted 
      var date_tweet = new Date(tweet.created_at); 
      var date_now = new Date(); 
      var date_diff = date_now - date_tweet; 
      var hours  = Math.round(date_diff/(1000*60*60));  // calc time to tweet in hours 
      if(hours < 1){ 
       hours = Math.round(date_diff/(1000*60)); 
       if(hours<1){ 
        $("#tweets").append($("<li/>").html(tweet.text+" <span class='tweetTime'>--a moment ago.</span>")); 
       }else{ 
        $("#tweets").append($("<li/>").html(tweet.text+" <span class='tweetTime'>--"+hours+" minute(s) ago.</span>")); 
       } 
      }else{ 
       $("#tweets").append($("<li/>").html(tweet.text+" <span class='tweetTime'>--"+hours+" hour(s) ago.</span>")); 
      } 
     } 
    }); 
} 

我現在用獲得響應,並存儲在localStorage的響應查詢字符串:

function sendRequest(handle, noOfTweets, boolDisplay){ 
    $.getJSON("http://api.twitter.com/1/statuses/user_timeline.json?screen_name="+ handle + "&count=" + noOfTweets + "&callback=?", function(data) { 
    if(boolDisplay){ 
     displayTweets(data); 
    } 
    localStorage.setItem("tweets"+handle, JSON.stringify(data)); 
    }); 

請告訴我需要什麼樣的變化! }

+0

我也試圖改變displayTweets(數據); displayTweets(JSON.parse(data));但它不起作用 – Playmaker

回答

0

返回的JSON的結構完全不同。見的例子在https://dev.twitter.com/docs/api/1/get/searchhttps://dev.twitter.com/docs/api/1/get/statuses/user_timeline

例如,你說

$.each(data.results, function(i, tweet) { 

但用戶時間表不包含結果元素。

你想要的東西像

$.each(data, (function(i, tweet) { 
+0

謝謝! 你能告訴我trim_user = true是否對我有幫助嗎? 還有任何「簡短」的方式來提供該推文鏈接或添加轉推選項? – Playmaker