2012-05-16 4 views
0

검색 API를 사용하여 특정 사용자의 트윗을 가져 왔습니다. 그것은 사용자 이름이 들어있는 짹짹을 가져올 수 없다는 점을 제외하면 완벽하게 작동했습니다.트위터 검색 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>")); 
      } 
     } 
    }); 
} 

지금은 반응을 얻고 로컬 스토리지에 응답 저장하는 데 사용하고 쿼리 문자열 :

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 (데이터) 변경 시도합니다; to 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

관련 문제