2012-01-04 3 views
0

나는 트위터 스트리밍 API의 샘플 트윗을 얻을 수 tweetstream gem를 사용가 예기치 않게

TweetStream.configure do |config| 
    config.username = 'my_username' 
    config.password = 'my_password' 
    config.auth_method = :basic 
end 

@client = TweetStream::Client.new 

@client.sample do |status| 
    puts "#{status.text}" 
end 

그러나,이 스크립트는 약 100 트윗 (스크립트가 계속 실행) 후 트윗을 인쇄 중지됩니다. 무엇이 문제 일 수 있습니까?

답변

0

트위터 검색 API는 것들에 대한 어떤 임의의 (외부에서) 한계를 설정 from the docs :

GET statuses/:id/retweeted_by Show user objects of up to 100 members who retweeted the status.

From the gem, 방법에 대한 코드는 다음과 같습니다

# Returns a random sample of all public statuses. The default access level 
# provides a small proportion of the Firehose. The "Gardenhose" access 
# level provides a proportion more suitable for data mining and 
# research applications that desire a larger proportion to be statistically 
# significant sample. 
def sample(query_parameters = {}, &block) 
    start('statuses/sample', query_parameters, &block) 
end 

나는 API 문서를 체크 하지만 'statuses/sample'에 대한 항목은 보이지 않지만 위의 내용을 보면 어떤 상태/xxx에 액세스했는지 100 번에 도달했다고 가정합니다.

또한 내가 틀렸다고 정정하되 트위터가 더 이상 기본 인증을 수락하지 않으며 OAuth 키를 사용해야한다고 생각합니다. 그렇다면 인증되지 않았 음을 의미하며 검색 API로도 다른 방식으로 제한됩니다. https://dev.twitter.com/docs/rate-limiting

희망이 있습니다.


좋아, 내가 streaming API (내 사과)에서 찾아 봤는데해야 할 때 나는 검색 API를 찾고 있었어요, 거기에 실수를하지만, 내가 얘기 한 몇 가지를 가능 네 문제의 원인이 될 수있어. 나는 그것을 떠날거야. 트위터는 확실히 멀리 기본 인증에서 이동, 그래서 내가 먼저 볼 것을 해결하려고 할 것입니다 : 당신의 세부 사항 답변

https://dev.twitter.com/docs/auth/oauth/faq

+0

감사합니다. OAuth를 시도한 다음 오류가 발생했습니다 : '7 회 시도 후 다시 연결하지 못했습니다.'Google을 검색 한 후이 문제를 발견했습니다 (https://github.com/intridea/tweetstream/issues/50). 기본 인증으로 다시 전환하십시오. 어떻게해야합니까? – daisy

+1

다른 트위터 보석을 사용하거나 Oauth 보석을 사용하여 자격 증명을 테스트 할 수 있습니다. 당신이 https://github.com/moomerman/twitter_oauth#readme을 시도해 볼 수있는 twitter_oauth 보석도 있다는 것을 알고 있습니다. 똑같은 문제가 발생하면 아마 트위터가 될 것입니다. 나는 보석을 쓰지 않고 내 Oauth 및 Twitter 연결 스크립트를 작성하는 과정을 밟았습니다. 다른 보석을 시도한 후에도 여전히 문제가 있다면 알려 주시면 시도해 볼 수 있도록 코드를 게시 해 드리겠습니다. – iain

+1

실행할 때마다 https://dev.twitter.com/status 페이지를 확인할 수도 있습니다. API 중 하나에서 프로그래밍 방식으로이를 확인하는 방법이 있다고 생각했지만 찾지 못했습니다. – iain

관련 문제