2011-11-14 4 views
0

WPF 애플리케이션에서 트위터 스트리밍 API를 사용하고 싶습니다. OAuth를 사용하여 인증 프로세스를 완료 할 수 있습니다. 내 문제는 트위터에서 트윗을 가져 오는 과정을 알지 못한다는 것입니다. 누구나 나를 가져 와서 짹짹을 업데이 트하는 과정을 이해하는 데 도움이 될 수있는 몇 가지 샘플 응용 프로그램을 제공 할 수 있습니다.WPF 앱에서 트위터 스트리밍 API 사용

감사합니다.

+0

[Twitterizer] (http://www.twitterizer.net)와 같은 라이브러리를 보았습니까? 그것은 아마 그것을 쉽게 만들 것입니다. – ChrisWay

답변

1

트위터 스트림에서 읽는 것은 매우 쉽습니다. 방금 요청을하고 응답 스트림을 얻은 다음 읽기를 시작합니다. 예를 들면 : 당신이 영원히 ReadLine 루프에 갇혀있을거야 그래서

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(twitter_search_url); 
// this uses password authentication. Change for OAuth 
request.Credentials = new NetworkCredential(TwitterUser, TwitterPassword); 
request.KeepAlive = true; 
request.UserAgent = user_agent_string; 
HttpWebResponse response; 
try 
{ 
    response = (HttpWebResponse)request.GetResponse(); 
    var reader = new StreamReader(response.GetResponseStream()); 
    string line; 
    while ((line = reader.ReadLine()) != null) 
    { 
     // line contains the tweet. 
     // parse with a JSON reader 
    } 
    // end of stream 
} 
catch (... handle exceptions here) 
{ 
} 
finally 
{ 
    response.Close(); 
} 

응답 스트림은 본질적으로 무한하다.

저는 몇 년 동안 위의 코드를 약간 더 완벽하게 사용했습니다. 물론 프로덕션 코드는 더 나은 오류 처리 기능을 가지고 있으며, 루프는 Shutdown 이벤트를 검사하여 정상적으로 종료 할 수 있지만 트위터 스트림을 읽는 메커니즘은 동일합니다.

+0

Jim, 답장을 보내 주셔서 감사합니다.하지만 동일한 문제가 발생했습니다. 무한 루프에 빠져서이 문제를 해결할 방법을 얻을 수 없습니다. 이 무한 스트림에서 데이터를 읽는 방법에 대해 자세히 설명해주십시오. –

+0

@Vibhore : "무한 루프"라고 할 때, 데이터가 계속 나오게됩니다. 결코 멈추지 않습니다. 나는 모든 것을 읽는데 문제가 없다. 위의 코드는 스트림 읽기를 중지 할 수있는 방법이 없지만 쉽게 추가 할 수 있습니다. 정확하게 당신이 가진 문제입니다. –

+0

짐, 최근 트윗을 사용하려면이 스트림의 모든 데이터를 읽어야합니다. 하지만 문제는 InvalidOperationException을 throw 할 때 스트림의 모든 데이터를 읽을 수 없다는 것입니다. Stream.ReadToEnd()를 사용하려고합니다. –

관련 문제