저는 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
감사
무엇이 작동하지 않습니까? 영웅에 배치하면 어떻게 될까요? 당신은 heroku 로그를 게시 할 수 있습니까? – rb512
dev.twitter.com에 가서 콜백 URL을 업데이트 했습니까? 어쩌면 사용자 승인 후 로컬 호스트로 리디렉션 될 수 있습니다. (귀하의 oAuth 라이브러리는 선택적으로 콜백 URL을 지정할 수 있다고 생각하지만 그렇지 않은 경우 설정에 포함 된 URL로 다시 리디렉션됩니다.) – mahemoff
트위터에 2 개의 앱을 등록하십시오. 1은 개발 용이고 1 개는 라이브 앱용이며 키와 비밀은 환경 변수 – AJcodez