2014-05-21 1 views
1

Twitter에 대한 API 호출이 작동합니다. 그래, 나! 하지만 문제는 HTTParty로 리팩터링 한 다음 나중에 확장 할 수 있다는 것입니다. 왜 내가 twitter gem과 같은 것을 사용하지 않는지에 대한 여러 가지 이유가 있습니다. 이는 주로 응용 프로그램에서 극복해야 할 몇 가지 한계로 인해 발생합니다.HTTParty를 사용하는 API 호출을 리팩터링하려면 어떻게해야합니까?

class Twitter 
    def validate 
    consumer_key = OAuth::Consumer.new(
     ENV['TWITTER_CONSUMER_KEY'], 
     ENV['TWITTER_CONSUMER_SECRET'] 
    ) 
    access_token = OAuth::Token.new(
     ENV['TWITTER_ACCESS_TOKEN'], 
     ENV['TWITTER_ACCESS_SECRET'] 
    ) 

    baseurl = "https://api.twitter.com" 

    address = URI "#{baseurl}/1.1/account/verify_credentials.json" 

    http = Net::HTTP.new address.host, address.port 
    http.use_ssl = true 
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER 

    request = Net::HTTP::Get.new address.request_uri 
    request.oauth! http, consumer_key, access_token 

    http.start 
    response = http.request request 
    puts "The response status was #{response.code}" 
    end 
end 

그것은 단지 oath gem에 따라 달라집니다 : 여기

, 나는 트위터에 호출하는 코드의 작업 조각을 가지고있다.

키 질문 : 모듈 식으로 만들려면 어떻게 이것을 HTTParty로 포장합니까?

답변

1

당신은 후자의 혜택을 얻을 수 HTTPartyNET::HTTP을 대체 할 수있는, 또는 백그라운드에서 그를 추상화하는 중 액티브와 같은 인터페이스에 응답 있도록 HTTParty을 여분 마일 가서 Twitter 모델을 포함 할 수있다 모든 API 요청을 발행하고 있습니다.

결정은 실제로 당신의 필요에 달려 있습니다. 트위터에 특정 요청을 보내고 결과를 표시하거나 트위터와 더 많이 상호 작용하고 만들고, 검색하고, 삭제할 수있는 모델로 취급해야합니다.

선택 사항에 관계없이 official readme에는 필요한 모든 정보가 포함되어 있다고 믿으십시오 (심지어 StackExchange의 훌륭한 예제가 있습니다!).

+0

예. 나는 "여분 엔지니어"에게 여분 마일을 가야하지 않 ㄹ 것을 바란다 그러나 나는 그 위치에있다. 내 생각에 ATM, 독서만큼이나 간단 해. 글과 DM에 대해서는 생각하지 않을 것입니다. 아직 oauth를 위해 repo에서 아무것도 찾지 못했습니다 ... – BenMorganIO

관련 문제