2013-10-11 5 views
1

저는 Ruby와 Programming General에서 비교적 새롭습니다. 나는 YouTube에서 가장 인기있는 모든 동영상의 JSON 파일을 출력하기 위해 최고 트위터와 Google 트렌드를 검색하는 약 6 개월 전에이 앱을 만들었습니다. 나는 그것을 Heroku에 배치했고 트위터 API 1이 API 1.1로 업데이트 될 때까지 아무런 문제가 없었다. 7 개월 전 지역적으로 근무하고 Heroku가에서, 내 코드는 다음처럼 보였다 트위터 트렌드를 얻을 수 있습니다 ..Twitter Api 클라이언트 : 작동하지만 로컬에서는 작동하지 않습니다.

직접 나에게 트위터에서 최고 동향을 제공하는 오픈 소스로 사용
if trendLocation == nil 
     result = JSON.parse(open("https://api.twitter.com/1/trends/1.json").read) 
    end 

    if trendLocation.to_i == 23424977 
     result = JSON.parse(open("https://api.twitter.com/1/trends/23424977.json").read) 
    end 

    topTen = result.first["trends"] 
    panelArray = Array.new  

(https://api.twitter.com/1/trends/23424977.json) (인증 없음 필요한). 트위터 API 1.1 업데이트 이후로 링크가 더 이상 존재하지 않아 트렌드를 얻기 위해 앱을 인증해야했습니다. 이제는 URL에서 트위터 트렌드를 요구할 때마다 앱이 다운됩니다. 그러나 Google 트렌드를 요구하면 로컬 및 Heroku에서 완벽하게 작동합니다.

그래서 Twitter :: Client를 사용하여 내 앱을 인증하기 위해 'twitter'및 'oauth'보석을 다운로드했습니다. 나는이 코드를 바꿨다.

def getPanelsForTwitter(panelMaxCount) 

    client = Twitter::Client.new(
     :consumer_key => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
     :consumer_secret => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
     :oauth_token => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
     :oauth_token_secret => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 
    ) 

    usa = client.trends(23424977) 
    world = client.trends(1) 

    trendLocation = params[:woeid] 

    if trendLocation == nil 
     result = world 
    end 

    if trendLocation.to_i == 23424977 
     result = usa 
    end 

    panelArray = Array.new  

end 

다 (같은, 트위터와 구글의 트렌드를 얻을 YouTube에서 검색, 비디오 결과를 표시) 로컬 작동하고 수행하는 데 필요한 모든 작업을 수행합니다. 하지만 Heroku에 푸시하면 앱이 충돌하지만 Heroku에 푸시하거나 배포 할 때 작동하지 않습니다. ==========================

나는 Heroku가 로그를 실행하고이 내가
2013-10-13T19:38:31.623556+00:00 app[web.1]: => Call with -d to detach 
2013-10-13T19:38:31.623556+00:00 app[web.1]: => Ctrl-C to shutdown server 
2013-10-13T19:38:31.631953+00:00 app[web.1]: Exiting 
2013-10-13T19:38:31.635716+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:225:in `require_dependency' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/engine.rb:439:in `block (2 levels) in eager_load!' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/engine.rb:438:in `block in eager_load!' 
2013-10-13T19:38:31.635716+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:312:in `depend_on' 
2013-10-13T19:38:31.635670+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:317:in `rescue in depend_on': No such file to load -- oAuth (LoadError) 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/engine.rb:438:in `each' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `instance_exec' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/engine.rb:436:in `eager_load!' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/engine.rb:436:in `each' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `run' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `run_initializers' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:136:in `initialize!' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:55:in `block in run_initializers' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/builder.rb:51:in `initialize' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/config/environment.rb:5:in `<top (required)>' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/config.ru:3:in `require' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/config.ru:3:in `block in <main>' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/builder.rb:51:in `instance_eval' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application/finisher.rb:53:in `block in <module:Finisher>' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/builder.rb:40:in `eval' 
2013-10-13T19:38:31.635811+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `each' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:50:in `tap' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/server.rb:200:in `app' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands/server.rb:46:in `app' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/server.rb:304:in `wrapped_app' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:in `method_missing' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/builder.rb:40:in `parse_file' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:55:in `block in <top (required)>' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/config.ru:in `new' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/config.ru:in `<main>' 
2013-10-13T19:38:31.636437+00:00 app[web.1]: from script/rails:6:in `require' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.4/lib/rack/server.rb:254:in `start' 
2013-10-13T19:38:31.636437+00:00 app[web.1]: from script/rails:6:in `<main>' 
2013-10-13T19:38:31.636008+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands/server.rb:70:in `start' 
2013-10-13T19:38:31.636437+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:50:in `<top (required)>' 
2013-10-13T19:38:33.267427+00:00 heroku[web.1]: State changed from starting to crashed 
2013-10-13T19:38:33.252069+00:00 heroku[web.1]: Process exited with status 1 
2013-10-13T19:38:35.105276+00:00 heroku[run.1165]: Awaiting client 
2013-10-13T19:38:35.237705+00:00 heroku[run.1165]: Starting process with command `bundle` 
2013-10-13T19:38:37.592953+00:00 heroku[run.1165]: State changed from starting to complete 
2013-10-13T19:38:37.583575+00:00 heroku[run.1165]: Process exited with status 0 
2013-10-13T19:38:51.535832+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/trends?p=10&v=10&source=gt&woeid=23424977 host=radiant-plains-2608.herokuapp.com fwd="50.129.228.74" dyno= connect= service= status=503 bytes= 
129.228.74" dyno= connect= service= status=503 bytes= 
2013-10-13T19:37:58.326215+00:00 heroku[web.1]: State changed from starting to crashed 


을 얻을 것입니다 ==============================

내가 얻는 첫 번째 오류는 (3.2.9/lib/active_support/dependencies.rb : 317 :`depend_in_rescure_rescue '에 있습니다 :로드 할 파일이 없습니다 - oAuth (LoadError)).

그래서 내 보석에 문제가 있다는 것을 부끄럽게 생각합니다. 나는 보석을 현지에서 생각하고 있으며, 영웅의 보석은 맞지 않습니다.

는 여기에 내가 로컬 보석 목록을 실행하고 나는 실행할 때 Heroku가이 보석의 목록을 실행할 때

GEM 
    remote: https://rubygems.org/ 
    specs: 
    actionmailer (3.2.9) 
     actionpack (= 3.2.9) 
     mail (~> 2.4.4) 
    actionpack (3.2.9) 
     activemodel (= 3.2.9) 
     activesupport (= 3.2.9) 
     builder (~> 3.0.0) 
     erubis (~> 2.7.0) 
     journey (~> 1.0.4) 
     rack (~> 1.4.0) 
     rack-cache (~> 1.2) 
     rack-test (~> 0.6.1) 
     sprockets (~> 2.2.1) 
    activemodel (3.2.9) 
     activesupport (= 3.2.9) 
     builder (~> 3.0.0) 
    activerecord (3.2.9) 
     activemodel (= 3.2.9) 
     activesupport (= 3.2.9) 
     arel (~> 3.0.2) 
     tzinfo (~> 0.3.29) 
    activeresource (3.2.9) 
     activemodel (= 3.2.9) 
     activesupport (= 3.2.9) 
    activesupport (3.2.9) 
     i18n (~> 0.6) 
     multi_json (~> 1.0) 
    arel (3.0.2) 
    builder (3.0.4) 
    coffee-rails (3.2.2) 
     coffee-script (>= 2.2.0) 
     railties (~> 3.2.0) 
    coffee-script (2.2.0) 
     coffee-script-source 
     execjs 
    coffee-script-source (1.4.0) 
    erubis (2.7.0) 
    execjs (1.4.0) 
     multi_json (~> 1.0) 
    faraday (0.8.5) 
     multipart-post (~> 1.1) 
    hike (1.2.1) 
    httpauth (0.2.0) 
    i18n (0.6.1) 
    journey (1.0.4) 
    jquery-rails (2.2.0) 
     railties (>= 3.0, < 5.0) 
     thor (>= 0.14, < 2.0) 
    json (1.7.6) 
    jwt (0.1.5) 
     multi_json (>= 1.0) 
    mail (2.4.4) 
     i18n (>= 0.4.0) 
     mime-types (~> 1.16) 
     treetop (~> 1.4.8) 
    mime-types (1.19) 
    multi_json (1.5.0) 
    multi_xml (0.5.3) 
    multipart-post (1.1.5) 
    nokogiri (1.5.6) 
    oauth (0.4.7) 
    oauth2 (0.9.1) 
     faraday (~> 0.8) 
     httpauth (~> 0.1) 
     jwt (~> 0.1.4) 
     multi_json (~> 1.0) 
     multi_xml (~> 0.5) 
     rack (~> 1.2) 
    pg (0.14.1) 
    polyglot (0.3.3) 
    rack (1.4.4) 
    rack-cache (1.2) 
     rack (>= 0.4) 
    rack-ssl (1.3.2) 
     rack 
    rack-test (0.6.2) 
     rack (>= 1.0) 
    rails (3.2.9) 
     actionmailer (= 3.2.9) 
     actionpack (= 3.2.9) 
     activerecord (= 3.2.9) 
     activeresource (= 3.2.9) 
     activesupport (= 3.2.9) 
     bundler (~> 1.0) 
     railties (= 3.2.9) 
    railties (3.2.9) 
     actionpack (= 3.2.9) 
     activesupport (= 3.2.9) 
     rack-ssl (~> 1.3.2) 
     rake (>= 0.8.7) 
     rdoc (~> 3.4) 
     thor (>= 0.14.6, < 2.0) 
    rake (10.0.3) 
    rdoc (3.12) 
     json (~> 1.4) 
    sass (3.2.5) 
    sass-rails (3.2.6) 
     railties (~> 3.2.0) 
     sass (>= 3.1.10) 
     tilt (~> 1.3) 
    simple_oauth (0.2.0) 
    sprockets (2.2.2) 
     hike (~> 1.2) 
     multi_json (~> 1.0) 
     rack (~> 1.0) 
     tilt (~> 1.1, != 1.3.0) 
    sqlite3 (1.3.7) 
    thor (0.17.0) 
    tilt (1.3.3) 
    treetop (1.4.12) 
     polyglot 
     polyglot (>= 0.3.1) 
    twitter (4.8.1) 
     faraday (~> 0.8, < 0.10) 
     multi_json (~> 1.0) 
     simple_oauth (~> 0.2) 
    tzinfo (0.3.35) 
    uglifier (1.3.0) 
     execjs (>= 0.3.0) 
     multi_json (~> 1.0, >= 1.0.2) 
    youtube_it (2.1.13) 
     builder 
     faraday (~> 0.8) 
     nokogiri (~> 1.5.2) 
     oauth (~> 0.4.4) 
     oauth2 (~> 0.6) 
     simple_oauth (>= 0.1.5) 

PLATFORMS 
    ruby 

DEPENDENCIES 
    coffee-rails (~> 3.2.1) 
    jquery-rails 
    oauth 
    pg 
    rails (= 3.2.9) 
    sass-rails (~> 3.2.3) 
    sqlite3 
    twitter (>= 4.8.1) 
    uglifier (>= 1.0.3) 
    youtube_it 

모든 것이 일치 내 gemfile.lock입니다. 난 '트위터'와 'oauth'보석을 제거하고, 그것을 재설치하고 번들 설치를 실행했지만, 여전히 동일한 문제가 발생했습니다.

현재 내 상태에서 내 앱은 로컬에서만 작동하며 Google 트렌드를 얻으려는 경우에도 Heroku (실시간)에서는 작동하지 않습니다. 전체 앱이 다운됩니다.

6 개월 전 Heroku에서 롤백했을 때, 앱이 트위터에서 무언가를 호출 할 때만 오류가 발생합니다. 다른 모든 것은 Heroku에서 작동합니다.

이렇게하면 gemfile을 읽으려고 할 때 Heroku 배포 문제가 발생할 수 있습니다. 권리? 내가 놓친 게 있니? 내가 쓸 수있는 다른 보석이 있니? 또는이 보석 문제가 아닌가요?

GitHub의 : https://github.com/meeks16/webservice

감사

+0

무엇이 작동하지 않습니까? 영웅에 배치하면 어떻게 될까요? 당신은 heroku 로그를 게시 할 수 있습니까? – rb512

+2

dev.twitter.com에 가서 콜백 URL을 업데이트 했습니까? 어쩌면 사용자 승인 후 로컬 호스트로 리디렉션 될 수 있습니다. (귀하의 oAuth 라이브러리는 선택적으로 콜백 URL을 지정할 수 있다고 생각하지만 그렇지 않은 경우 설정에 포함 된 URL로 다시 리디렉션됩니다.) – mahemoff

+0

트위터에 2 개의 앱을 등록하십시오. 1은 개발 용이고 1 개는 라이브 앱용이며 키와 비밀은 환경 변수 – AJcodez

답변

1

입력 해 주셔서 감사합니다. 마지막으로 이것이 무엇이 잘못되었는지 발견했습니다. 그것은 나에게 매우 부주의했지만 간단한 구문 오류였습니다. Heroku가 로그에 내 오류는 ..

`rescue in depend_on': No such file to load -- oAuth (LoadError) 

가 나는 내가 완전히 잊어 '의 OAuth'을 요구했다 별도의 temps_controller했다. 보석 '오아시스'는 존재하지 않고 '오아시스'로 여겨졌습니다. 이것이 영웅에게 배포 될 때 앱이 다운되는 이유입니다. 임씨는 왜 놀랍고 당황했는지, 왜 그것이 지역적으로 효과가 있었는지 궁금해합니다. 나는 localhost가 이와 같은 실수로 더 관대하다는 것을 추측하고 있나?

라이브 사이트에 배포 할 때 정말주의해야합니다. 테스트를 위해 사용한 모든 임시 파일을 제거하여 코드를 정리해야합니다. 컨트롤러에서 require를 사용하지 마십시오. 필요한 보석을 설치하기 만하면됩니다.

그것은 나에게 약간의 시간이 걸렸지 만, 분명히 많이 배웠던 그런 단순하고 어리석은 실수였다.

0

난 당신이 코멘트에 좋은 답변을 가지고 생각하지만, 당신은 또한 당신의 공개를 던지고하지 않을 보장하기 위해 Twitter Gem보고 할 수 있습니다 API 키가 손상 될 수있는 곳 주변

관련 문제